Skip to content

Tags: funkwerk-mobility/libidle

Tags

v0.3.1

Toggle v0.3.1's commit message
Fix libpaho-mqtt "can't load symbol: next_sem_init"

paho-mqtt calls pthread functions from DT_INIT, which runs earlier than our constructor.

v0.2.5

Toggle v0.2.5's commit message
Fix libpaho-mqtt "can't load symbol: next_sem_init". Backport to 0.2.4.

paho-mqtt calls pthread functions from DT_INIT, which runs earlier than our constructor.

v0.3.0

Toggle v0.3.0's commit message
Drop support for glibc <2.34.

v0.2.4

Toggle v0.2.4's commit message
Tolerate reentrancy in and onto pthread_join.

This is required to handle thread calls from a signal-triggered thread shutdown during a blocking call in newer DMDs.

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.