about summary refs log tree commit diff
path: root/linuxthreads/pthread.c
diff options
context:
space:
mode:
Diffstat (limited to 'linuxthreads/pthread.c')
-rw-r--r--linuxthreads/pthread.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/linuxthreads/pthread.c b/linuxthreads/pthread.c
index a78e0c92de..0e713e74da 100644
--- a/linuxthreads/pthread.c
+++ b/linuxthreads/pthread.c
@@ -37,6 +37,11 @@
 /* Descriptor of the initial thread */
 
 struct _pthread_descr_struct __pthread_initial_thread = {
+  {
+    {
+      &__pthread_initial_thread /* pthread_descr self */
+    }
+  },
   &__pthread_initial_thread,  /* pthread_descr p_nextlive */
   &__pthread_initial_thread,  /* pthread_descr p_prevlive */
   NULL,                       /* pthread_descr p_nextwaiting */
@@ -71,7 +76,6 @@ struct _pthread_descr_struct __pthread_initial_thread = {
   0,                          /* int p_userstack */
   NULL,                       /* void * p_guardaddr */
   0,                          /* size_t p_guardsize */
-  &__pthread_initial_thread,  /* pthread_descr p_self */
   0,                          /* Always index 0 */
   0,                          /* int p_report_events */
   {{{0, }}, 0, NULL},         /* td_eventbuf_t p_eventbuf */
@@ -88,6 +92,11 @@ struct _pthread_descr_struct __pthread_initial_thread = {
    and the address for identification.  */
 
 struct _pthread_descr_struct __pthread_manager_thread = {
+  {
+    {
+      &__pthread_manager_thread /* pthread_descr self */
+    }
+  },
   NULL,                       /* pthread_descr p_nextlive */
   NULL,                       /* pthread_descr p_prevlive */
   NULL,                       /* pthread_descr p_nextwaiting */
@@ -122,7 +131,6 @@ struct _pthread_descr_struct __pthread_manager_thread = {
   0,                          /* int p_userstack */
   NULL,                       /* void * p_guardaddr */
   0,                          /* size_t p_guardsize */
-  &__pthread_manager_thread,  /* pthread_descr p_self */
   1,                          /* Always index 1 */
   0,                          /* int p_report_events */
   {{{0, }}, 0, NULL},         /* td_eventbuf_t p_eventbuf */
@@ -369,12 +377,12 @@ static void pthread_initialize(void)
   sa.sa_flags = 0;
   __sigaction(__pthread_sig_restart, &sa, NULL);
   sa.sa_handler = pthread_handle_sigcancel;
-  sa.sa_flags = 0;
+  // sa.sa_flags = 0;
   __sigaction(__pthread_sig_cancel, &sa, NULL);
   if (__pthread_sig_debug > 0) {
     sa.sa_handler = pthread_handle_sigdebug;
     sigemptyset(&sa.sa_mask);
-    sa.sa_flags = 0;
+    // sa.sa_flags = 0;
     __sigaction(__pthread_sig_debug, &sa, NULL);
   }
   /* Initially, block __pthread_sig_restart. Will be unblocked on demand. */