Skip to content
This repository was archived by the owner on Jan 12, 2023. It is now read-only.

Tags: funkwerk/libidle

Tags

v0.2.3

Toggle v0.2.3's commit message
Fix hang bug caused by silly typo.

Correctly print thread name only if LIBIDLE_VERBOSE= is set.

v0.2.2

Toggle v0.2.2's commit message
Fix: Handle case where a sem_wait is interrupted by another sem_wait.…

… (D GC during blocking wait)

v0.2.1

Toggle v0.2.1's commit message
Fix: Don't go idle during thread creation.

v0.2.0

Toggle v0.2.0's commit message
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.

v0.1.5

Toggle v0.1.5's commit message
Fix: consider the defined clock on the condition when waiting with ti…

…meout.

Fix: don't unlock between thread startup and thread registration.

v0.1.4

Toggle v0.1.4's commit message
Fix: Register thread from created thread, not creating thread.

Fix: Only restore pthread signal mask on outermost libidle lock.

v0.1.3

Toggle v0.1.3's commit message
Block all signals while the libidle mutex is locked.

Fixes interaction with the D GC.

v0.1.2

Toggle v0.1.2's commit message
Add loop to timedwait to handle early wakeups.

Patches around a faketime issue.

v0.1.1

Toggle v0.1.1's commit message
Changed: `_forced_idle`, `_forced_busy` now form a call stack. All bu…

…t the *outermost* pair are ignored.

v0.1.0

Toggle v0.1.0's commit message
Initial release.