Package frobbing fix from Matthew Danish to make sb-thread
build again
Save errno return from waitpid long enough to print the error,
as the real errno is clobbered by parent_do_garbage_collect()
#s(sb-cold:package-data
:name "SB!THREAD"
- :use ("CL" "SB!ALIEN")
+ :use ("CL" "SB!ALIEN" "SB!INT")
:doc "public (but low-level): native thread support"
:export ("MAKE-THREAD"
"MAKE-LISTENER-THREAD" "DESTROY-THREAD" "WITH-RECURSIVE-LOCK"
-(in-package :sb!thread)
+(in-package "SB!THREAD")
+
+(defvar *session-lock*)
(sb!xc:defmacro with-recursive-lock ((mutex) &body body)
#!+sb-thread
maybe_gc_pending=0;
while(all_threads && (pid=waitpid(-1,&status,__WALL|WUNTRACED))) {
struct thread *th;
+ int real_errno=errno;
while(maybe_gc_pending) parent_do_garbage_collect();
if(pid==-1) {
- if(errno == EINTR) {
+ if(real_errno == EINTR) {
continue;
}
- if(errno == ECHILD) break;
- fprintf(stderr,"waitpid: %s\n",strerror(errno));
+ if(real_errno == ECHILD) break;
+ fprintf(stderr,"waitpid: %s\n",strerror(real_errno));
continue;
}
th=find_thread_by_pid(pid);
;;; checkins which aren't released. (And occasionally for internal
;;; versions, especially for internal versions off the main CVS
;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"0.8alpha.0.16"
+"0.8alpha.0.17"