aboutsummaryrefslogtreecommitdiff
path: root/libmudflap
diff options
context:
space:
mode:
authoruweigand <>2005-08-15 19:26:46 +0000
committeruweigand <>2005-08-15 19:26:46 +0000
commit0b3077c5a077ae9d457ba2a82d36a74a4cbeec2c (patch)
tree451b60bad31ed0f5a24f54ae16b155e76ffe759a /libmudflap
parentc8d97fd1515948167ad5863b1e784e966bfbb155 (diff)
* mf-hooks3.c (main_seen_p): Remove.
(__mf_get_state): Remove attempt to recognize the main thread.
Diffstat (limited to 'libmudflap')
-rw-r--r--libmudflap/ChangeLog5
-rw-r--r--libmudflap/mf-hooks3.c23
2 files changed, 9 insertions, 19 deletions
diff --git a/libmudflap/ChangeLog b/libmudflap/ChangeLog
index c42fa253600..4bd53167e79 100644
--- a/libmudflap/ChangeLog
+++ b/libmudflap/ChangeLog
@@ -1,3 +1,8 @@
+2005-08-15 Ulrich Weigand <weigand@informatik.uni-erlangen.de>
+
+ * mf-hooks3.c (main_seen_p): Remove.
+ (__mf_get_state): Remove attempt to recognize the main thread.
+
2005-08-15 Maciej W. Rozycki <macro@linux-mips.org>
* configure.ac: Test for the name of the symbol used for the entry
diff --git a/libmudflap/mf-hooks3.c b/libmudflap/mf-hooks3.c
index 73a7f717131..e32f13a58ef 100644
--- a/libmudflap/mf-hooks3.c
+++ b/libmudflap/mf-hooks3.c
@@ -104,11 +104,6 @@ struct mf_thread_data
static struct mf_thread_data mf_thread_data[LIBMUDFLAPTH_THREADS_MAX];
static pthread_mutex_t mf_thread_data_lock = PTHREAD_MUTEX_INITIALIZER;
-/* Try to identify the main thread when filling in mf_thread_data. We
- should always be called at least once from the main thread before
- any new threads are spawned. */
-static int main_seen_p;
-
#define PTHREAD_HASH(p) ((unsigned long) (p) % LIBMUDFLAPTH_THREADS_MAX)
static struct mf_thread_data *
@@ -176,11 +171,9 @@ __mf_get_state (void)
if (data)
return data->state;
- /* The main thread needs to default to active state, so that the global
- constructors are processed in the active state. Child threads should
- be considered to be in the reentrant state, so that we don't wind up
- doing Screwy Things inside the thread library; it'll get reset to
- active state in __mf_pthread_spawner before user code is invoked.
+ /* If we've never seen this thread before, consider it to be in the
+ reentrant state. The state gets reset to active for the main thread
+ in __mf_init, and for child threads in __mf_pthread_spawner.
The trickiest bit here is that the LinuxThreads pthread_manager thread
should *always* be considered to be reentrant, so that none of our
@@ -189,15 +182,7 @@ __mf_get_state (void)
stuff isn't initialized, leading to SEGV very quickly. Even calling
pthread_self is a bit suspect, but it happens to work. */
- if (main_seen_p)
- return reentrant;
- else
- {
- main_seen_p = 1;
- data = __mf_find_threadinfo (1);
- data->state = active;
- return active;
- }
+ return reentrant;
}
void