Commit 22f99b82 by Ulrich Weigand Committed by Ulrich Weigand

mf-runtime.c (__mf_state_1): Initialize to reentrant.

	* 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.

From-SVN: r103084
parent 8971094d
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.
......
......@@ -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);
}
......@@ -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");
......
......@@ -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 } */
......@@ -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 } */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment