This shows you the differences between two versions of the page.
Both sides previous revision Previous revision | |||
realtime:documentation:howto:applications:application_base [2024/05/27 23:42] alison [Scheduling and priority] |
realtime:documentation:howto:applications:application_base [2024/05/31 15:54] (current) alison [Scheduling and priority] |
||
---|---|---|---|
Line 32: | Line 32: | ||
</wrap> | </wrap> | ||
- **Problems with pthread condition variables** \\ <wrap> | - **Problems with pthread condition variables** \\ <wrap> | ||
- | Multithreaded applications which rely on glibc's libpthread are prone to unexpected latency delays since its pthread condition variable implementation does not honor priority inheritance ([[https://sourceware.org/bugzilla/show_bug.cgi?id=11588|bugzilla]]). Unfortunately glibc's DNS resolver and asynchronous I/O implementations depend in turn on these condition variables. | + | Multithreaded applications which rely on glibc's libpthread are prone to unexpected latency delays since its condition variable implementation does not honor priority inheritance ([[https://sourceware.org/bugzilla/show_bug.cgi?id=11588|bugzilla]]). Unfortunately glibc's DNS resolver and asynchronous I/O implementations depend in turn on these condition variables. |
[[https://github.com/dvhart/librtpi|librtpi]] is an alternative LGPL-licensed pthread implementation which supports priority inheritance, and whose API is as close to glibc's as possible. The alternative [[https://www.musl-libc.org/|MUSL libc]] has a pthread condition variable implementation similar to glibc's. | [[https://github.com/dvhart/librtpi|librtpi]] is an alternative LGPL-licensed pthread implementation which supports priority inheritance, and whose API is as close to glibc's as possible. The alternative [[https://www.musl-libc.org/|MUSL libc]] has a pthread condition variable implementation similar to glibc's. | ||
</wrap> | </wrap> |