You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Jan 12, 2023. It is now read-only.
Change: Remove nanosleep: It's unreliable in conjunction with faketim…
…e. Manually force idle if you actually want to sleep.
Bugfix: Don't unlock during thread creation.
Bugfix: Flip internal IDLE/BUSY test.
Improvement: Debug output is now much more legible. Thread names are annotated.
We presumed that when a process entered nanosleep, they intended to wait for an internal event: that is, faketime being advanced. However, libfaketime just returns from nanosleep immediately. This hid an issue with the D runtime, where a GC spinlock used nanosleep immediately, *not* intending to put the thread to sleep in a libidle sense.
Since we cannot separate domain sleeps from runtime sleeps, you are asked to manually force the thread to idle if you are waiting for an clock change rather than badly implementing busyspin.