OSDN Git Service

* mf-runtime.c (__mf_state_1): Initialize to reentrant.
authoruweigand <uweigand@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 14 Aug 2005 19:38:34 +0000 (19:38 +0000)
committeruweigand <uweigand@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 14 Aug 2005 19:38:34 +0000 (19:38 +0000)
(__mf_init): Set thread state active.
* mf-hooks3.c (__mf_pthread_spawner): Always set thread
state active.
(pthread_create wrapper): Always use thread spawner.

* testsuite/libmudflap.cth/pass37-frag.c: Increase timeout.
* testsuite/libmudflap.cth/pass39-frag.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@103084 138bc75d-0d04-0410-961f-82ee72b054a4

libmudflap/ChangeLog
libmudflap/mf-hooks3.c
libmudflap/mf-runtime.c
libmudflap/testsuite/libmudflap.cth/pass37-frag.c
libmudflap/testsuite/libmudflap.cth/pass39-frag.c

index f9f1380..ad61663 100644 (file)
@@ -1,3 +1,14 @@
+2005-08-14  Ulrich Weigand  <weigand@informatik.uni-erlangen.de>
+
+       * mf-runtime.c (__mf_state_1): Initialize to reentrant.
+       (__mf_init): Set thread state active.
+       * mf-hooks3.c (__mf_pthread_spawner): Always set thread
+       state active.
+       (pthread_create wrapper): Always use thread spawner.
+
+       * testsuite/libmudflap.cth/pass37-frag.c: Increase timeout.
+       * testsuite/libmudflap.cth/pass39-frag.c: Likewise.
+
 2005-07-16  Richard Henderson  <rth@redhat.com>
 
        * acinclude.m4: New file.
index f3006b2..73a7f71 100644 (file)
@@ -245,9 +245,7 @@ __mf_pthread_spawner (void *arg)
 {
   void *result = NULL;
 
-#ifndef HAVE_TLS
   __mf_set_state (active);
-#endif
 
   /* NB: We could use __MF_TYPE_STATIC here, but we guess that the thread
      errno is coming out of some dynamically allocated pool that we already
@@ -291,31 +289,15 @@ __mf_0fn_pthread_create (pthread_t *thr, const pthread_attr_t *attr,
 WRAPPER(int, pthread_create, pthread_t *thr, const pthread_attr_t *attr,
         void * (*start) (void *), void *arg)
 {
-  int result, need_wrapper = 0;
+  struct mf_thread_start_info *si;
 
   TRACE ("pthread_create\n");
 
-#ifndef HAVE_TLS
-  need_wrapper = 1;
-#endif
-  need_wrapper |= __mf_opts.heur_std_data != 0;
-
-  if (need_wrapper)
-    {
-      struct mf_thread_start_info *si = CALL_REAL (malloc, sizeof (*si));
-
-      /* Fill in startup-control fields.  */
-      si->user_fn = start;
-      si->user_arg = arg;
+  /* Fill in startup-control fields.  */
+  si = CALL_REAL (malloc, sizeof (*si));
+  si->user_fn = start;
+  si->user_arg = arg;
 
-      /* Actually create the thread.  */
-      result = CALL_REAL (pthread_create, thr, attr, __mf_pthread_spawner, si);
-    }
-  else
-    {
-      /* If we're not handling heur_std_data, nothing special to do.  */
-      result = CALL_REAL (pthread_create, thr, attr, start, arg);
-    }
-
-  return result;
+  /* Actually create the thread.  */
+  return CALL_REAL (pthread_create, thr, attr, __mf_pthread_spawner, si);
 }
index af584e7..e690165 100644 (file)
@@ -178,10 +178,10 @@ int __mf_starting_p = 1;
 
 #ifdef LIBMUDFLAPTH
 #ifdef HAVE_TLS
-__thread enum __mf_state_enum __mf_state_1 = active;
+__thread enum __mf_state_enum __mf_state_1 = reentrant;
 #endif
 #else
-enum __mf_state_enum __mf_state_1 = active;
+enum __mf_state_enum __mf_state_1 = reentrant;
 #endif
 
 #ifdef LIBMUDFLAPTH
@@ -697,6 +697,8 @@ __mf_init ()
 #endif
   __mf_starting_p = 0;
 
+  __mf_set_state (active);
+
   __mf_set_default_options ();
 
   ov = getenv ("MUDFLAP_OPTIONS");
index bfa2c7c..877803c 100644 (file)
@@ -55,4 +55,4 @@ int main ()
 
 /* { dg-output "100 100 100 100 100 100 100 100 100 100" } */
 /* { dg-repetitions 20 } */
-/* { dg-timeout 3 } */
+/* { dg-timeout 10 } */
index eb3449e..cd3eb5a 100644 (file)
@@ -54,4 +54,4 @@ int main ()
 }
 /* { dg-output "100 100 100 100 100 100 100 100 100 100" } */
 /* { dg-repetitions 20 } */
-/* { dg-timeout 3 } */
+/* { dg-timeout 10 } */