blob: 3a3526bc564dbc6a120f0136e5924abd4c0876cf (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
$FreeBSD$
https://bugzilla.novell.com/show_bug.cgi?id=647248
--- libgc/pthread_support.c.orig
+++ libgc/pthread_support.c
@@ -1344,7 +1344,8 @@ void * GC_start_routine_head(void * arg, void *base_addr,
if (start) *start = si -> start_routine;
if (start_arg) *start_arg = si -> arg;
- sem_post(&(si -> registered)); /* Last action on si. */
+ if (!(si->flags & FOREIGN_THREAD))
+ sem_post(&(si -> registered)); /* Last action on si. */
/* OK to deallocate. */
# if defined(THREAD_LOCAL_ALLOC) && !defined(DBG_HDRS_ALL)
LOCK();
|