projects
/
sbcl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
1.0.46.31: clean up mach port deallocation on x86
[sbcl.git]
/
src
/
runtime
/
thread.c
diff --git
a/src/runtime/thread.c
b/src/runtime/thread.c
index
8e3f7fd
..
ee11e0f
100644
(file)
--- a/
src/runtime/thread.c
+++ b/
src/runtime/thread.c
@@
-131,6
+131,10
@@
initial_thread_trampoline(struct thread *th)
#ifdef LISP_FEATURE_SB_THREAD
pthread_setspecific(lisp_thread, (void *)1);
#endif
#ifdef LISP_FEATURE_SB_THREAD
pthread_setspecific(lisp_thread, (void *)1);
#endif
+#if defined(LISP_FEATURE_SB_THREAD) && defined(LISP_FEATURE_PPC)
+ /* SIG_STOP_FOR_GC defaults to blocked on PPC? */
+ unblock_gc_signals(0,0);
+#endif
function = th->no_tls_value_marker;
th->no_tls_value_marker = NO_TLS_VALUE_MARKER_WIDETAG;
if(arch_os_thread_init(th)==0) return 1;
function = th->no_tls_value_marker;
th->no_tls_value_marker = NO_TLS_VALUE_MARKER_WIDETAG;
if(arch_os_thread_init(th)==0) return 1;
@@
-314,12
+318,12
@@
new_thread_trampoline(struct thread *th)
#ifdef LISP_FEATURE_MACH_EXCEPTION_HANDLER
FSHOW((stderr, "Deallocating mach port %x\n", THREAD_STRUCT_TO_EXCEPTION_PORT(th)));
#ifdef LISP_FEATURE_MACH_EXCEPTION_HANDLER
FSHOW((stderr, "Deallocating mach port %x\n", THREAD_STRUCT_TO_EXCEPTION_PORT(th)));
- mach_port_move_member(mach_task_self(),
+ mach_port_move_member(current_mach_task,
THREAD_STRUCT_TO_EXCEPTION_PORT(th),
MACH_PORT_NULL);
THREAD_STRUCT_TO_EXCEPTION_PORT(th),
MACH_PORT_NULL);
- mach_port_deallocate(mach_task_self(),
+ mach_port_deallocate(current_mach_task,
THREAD_STRUCT_TO_EXCEPTION_PORT(th));
THREAD_STRUCT_TO_EXCEPTION_PORT(th));
- mach_port_destroy(mach_task_self(),
+ mach_port_destroy(current_mach_task,
THREAD_STRUCT_TO_EXCEPTION_PORT(th));
#endif
THREAD_STRUCT_TO_EXCEPTION_PORT(th));
#endif