Use re-entrant locks on stdio

This commit is contained in:
Justine Tunney 2022-05-22 08:13:13 -07:00
parent 4e9662cbc7
commit 1f229e4efc
78 changed files with 427 additions and 179 deletions

View file

@ -27,6 +27,12 @@ __msabi extern typeof(GetCurrentThreadId) *const __imp_GetCurrentThreadId;
/**
* Returns current thread id.
*
* On Linux, and Linux only, this is guaranteed to be equal to getpid()
* if this is the main thread. On NetBSD, gettid() for the main thread
* is always 1.
*
* @return thread id greater than zero or -1 w/ errno
* @asyncsignalsafe
*/
privileged int gettid(void) {

View file

@ -64,7 +64,7 @@
do { \
autotype(lock) __lock = (lock); \
typeof(*__lock) __x; \
int __tries = 0; \
unsigned __tries = 0; \
for (;;) { \
__atomic_load(__lock, &__x, __ATOMIC_RELAXED); \
if (!__x && !_trylock_inline(__lock)) { \