X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=libgc%2Fsolaris_threads.c;h=a0321b157e4c440ea9eec2395a3c55da86393980;hb=9f6fa83d53ec04dde5c07d21ca3a640024e00095;hp=e6e0ea259c17cdb842657cb8c0927ae8adc4a078;hpb=93703b4ef8bdcf1d6cf336e14f534454221730c5;p=mono.git diff --git a/libgc/solaris_threads.c b/libgc/solaris_threads.c index e6e0ea259c1..a0321b157e4 100644 --- a/libgc/solaris_threads.c +++ b/libgc/solaris_threads.c @@ -670,7 +670,7 @@ word GC_get_orig_stack_size() { result = (word)rl.rlim_cur & ~(HBLKSIZE-1); if (result > MAX_ORIG_STACK_SIZE) { if (!warned) { - WARN("Large stack limit(%ld): only scanning 8 MB\n", result); + /* WARN("Large stack limit(%ld): only scanning 8 MB\n", result); */ warned = 1; } result = MAX_ORIG_STACK_SIZE; @@ -787,18 +787,20 @@ void * GC_thr_daemon(void * dummy) UNLOCK(); } else { t = GC_lookup_thread(departed); - GC_multithreaded--; - if (!(t -> flags & CLIENT_OWNS_STACK)) { - GC_stack_free(t -> stack, t -> stack_size); - } - if (t -> flags & DETACHED) { - GC_delete_thread(departed); - } else { - t -> status = status; - t -> flags |= FINISHED; - cond_signal(&(t -> join_cv)); - cond_broadcast(&GC_prom_join_cv); - } + GC_multithreaded--; + if (t) { + if (!(t -> flags & CLIENT_OWNS_STACK)) { + GC_stack_free(t -> stack, t -> stack_size); + } + if (t -> flags & DETACHED) { + GC_delete_thread(departed); + } else { + t -> status = status; + t -> flags |= FINISHED; + cond_signal(&(t -> join_cv)); + cond_broadcast(&GC_prom_join_cv); + } + } UNLOCK(); } }