diff --git a/repos/libports/src/lib/libc/pthread.cc b/repos/libports/src/lib/libc/pthread.cc index 8481dac372..b0cf0a67e2 100644 --- a/repos/libports/src/lib/libc/pthread.cc +++ b/repos/libports/src/lib/libc/pthread.cc @@ -25,6 +25,7 @@ #include #include #include +#include /* __isthreaded */ #include /* malloc, free */ /* libc-internal includes */ @@ -74,6 +75,9 @@ size_t Pthread::_tls_pointer_offset; void Libc::Pthread::Thread_object::entry() { + /* use threaded mode in FreeBSD libc code */ + __isthreaded = 1; + /* * Obtain stack attributes of new thread for * 'pthread_attr_get_np()' diff --git a/repos/libports/src/lib/libc/pthread_create.cc b/repos/libports/src/lib/libc/pthread_create.cc index aa442a113a..ec5d1a3b51 100644 --- a/repos/libports/src/lib/libc/pthread_create.cc +++ b/repos/libports/src/lib/libc/pthread_create.cc @@ -22,6 +22,7 @@ /* libc includes */ #include #include +#include /* __isthreaded */ /* libc-internal includes */ #include @@ -172,6 +173,10 @@ int Libc::pthread_create_from_thread(pthread_t *thread, Thread &t, void *stack_a return EAGAIN; *thread = thread_obj; + + /* use threaded mode in FreeBSD libc code */ + __isthreaded = 1; + return 0; }