failsafe-lib / failsafe

Fault tolerance and resilience patterns for the JVM
https://failsafe.dev
Apache License 2.0
4.16k stars 295 forks source link

Closes #349 DelegatingScheduler: Bill Pugh Singleton Implementation #350

Open magicprinc opened 1 year ago

magicprinc commented 1 year ago

Closes #349

magicprinc commented 1 year ago

Second commit contains:

1) bug fix in DelegatingScheduler#schedule: (delay == 0) → (delay <= 0)

2) fix, if user's executor is actually commonPool() without parallelism. Similar to CompletableFuture.screenExecutor

3) Use less memory: don't capture variable if executor is commonPool (Lambda can access it without capturing through static field.