mirror of
https://github.com/fluencelabs/musl
synced 2025-06-26 05:02:02 +00:00
fix minor bugs due to incorrect threaded-predicate semantics
some functions that should have been testing whether pthread_self() had been called and initialized the thread pointer were instead testing whether pthread_create() had been called and actually made the program "threaded". while it's unlikely any mismatch would occur in real-world problems, this could have introduced subtle bugs. now, we store the address of the main thread's thread descriptor in the libc structure and use its presence as a flag that the thread register is initialized. note that after fork, the calling thread (not necessarily the original main thread) is the new main thread.
This commit is contained in:
@ -16,6 +16,7 @@ struct __libc {
|
||||
volatile int threads_minus_1;
|
||||
int ofl_lock;
|
||||
FILE *ofl_head;
|
||||
void *main_thread;
|
||||
};
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user