Re: custom Nano time provider

Francesco Nigro via Concurrency-interest <[email protected]> Mon, 6 Apr 2020 14:26:39 +0200
Newsgroups gmane.comp.java.jsr.166-concurrency
Message-ID <CAKxGtTUV4ZjA1Hq39gZ6ENCV9s2WcZf4eh45=rmNOZss7rWXAA@mail.gmail.com>
@Alex Otenko <[email protected]>
I was gong to write exactly the same :)

That's why I still think it would beneficial to have something different
from a mocked solution, but a proper API extension that unify the usage of
temporal info.
From the POV of performance it shouldn't be a big problem, given that a
real system is supposed to always use a single provide (and implementor)
making the actual call always monomorphic and (given that should just wrap
System::nanotTime)
trivially inlineable.

Il giorno lun 6 apr 2020 alle ore 14:19 Alex Otenko <
[email protected]> ha scritto:

> How does that work for a sequence of timestamps you want to feed?
> (Assuming you will need some j.u.c.Queue for this...)
>
> Alex
>
> On Mon, 6 Apr 2020, 11:54 Thorsten via Concurrency-interest, <
> [email protected]> wrote:
>
>> Hello
>>
>> To expand on Peters answer: For testing purpose to get reproducible
>> results you might to look into some mocking frameworks.
>>
>> For example in jmockit i can just do this
>>
>> final MockUp mockUp = new MockUp(System.class) {
>>     @Mock    long nanoTime() {
>>         return 1234;    }
>> };System.out.println(" = " + System.nanoTime());
>>
>> Boom custom nanoTime Provider.
>>
>> Best regards,
>>
>> Thorsten Goetzke
>> Am 06/04/2020 um 11:55 schrieb Peter Levart via Concurrency-interest:
>>
>> You could perhaps use bytecode instrumentation (
>> https://www.baeldung.com/java-instrumentation) to "patch" System class
>> and redirect/delegate it's execution to your custom time source.
>>
>> Peter
>>
>> On 4/5/20 1:23 PM, Francesco Nigro via Concurrency-interest wrote:
>>
>> Hi folks,
>>
>> In the recent period I am working on some high availability solution in
>> the project I currently work and I have noticed how is important for
>> testing purposes to use custom System::currentTimeMillis and
>> System::nanoTime providers to trigger specific reproducible conditions:
>> there is any plan to allow something similar in some of the concurrent
>> primitive that make uses of such functions?
>> I believe this could help both implementors and users.
>>
>>
>> Thanks,
>> Franz
>>
>> _______________________________________________
>> Concurrency-interest mailing [email protected]://cs.oswego.edu/mailman/listinfo/concurrency-interest
>>
>>
>>
>> _______________________________________________
>> Concurrency-interest mailing [email protected]://cs.oswego.edu/mailman/listinfo/concurrency-interest
>>
>> _______________________________________________
>> Concurrency-interest mailing list
>> [email protected]
>> http://cs.oswego.edu/mailman/listinfo/concurrency-interest
>>
>

_______________________________________________
Concurrency-interest mailing list
[email protected]
http://cs.oswego.edu/mailman/listinfo/concurrency-interest