summaryrefslogtreecommitdiff
path: root/lang/mono/files/patch-libgc_pthread__support.c
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();