* thread.cc (pthread::pthread): Drop setting parent_tls. Call

sigprocmask to copy parent thread signal mask into new parent_sigmask
	member.
	(pthread::thread_init_wrapper): Copy _my_tls.sigmask from new
	parent_sigmask member.
	* thread.h (class pthread): Drop parent_tls.  Add parent_sigmask.
This commit is contained in:
Corinna Vinschen
2011-08-24 15:18:17 +00:00
parent 8323a37d5d
commit 929a140824
3 changed files with 12 additions and 3 deletions

View File

@ -382,7 +382,7 @@ pthread::pthread ():verifyable_object (PTHREAD_MAGIC), win32_obj_id (0),
{
if (this != pthread_null::get_null_pthread ())
threads.insert (this);
parent_tls = &_my_tls;
sigprocmask (SIG_SETMASK, NULL, &parent_sigmask);
}
pthread::~pthread ()
@ -1985,7 +1985,7 @@ pthread::thread_init_wrapper (void *arg)
// if thread is detached force cleanup on exit
if (thread->attr.joinable == PTHREAD_CREATE_DETACHED && thread->joiner == NULL)
thread->joiner = thread;
_my_tls.sigmask = thread->parent_tls->sigmask;
_my_tls.sigmask = thread->parent_sigmask;
thread->mutex.unlock ();
thread_printf ("started thread %p %p %p %p %p %p", arg, &_my_tls.local_clib,