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