From: Daniel Barlow Date: Wed, 7 May 2003 11:38:35 +0000 (+0000) Subject: 0.8alpha.0.17 X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=54bd9afe110c9e77f2b4c7e3ae1a9cc86fc352f9;p=sbcl.git 0.8alpha.0.17 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() --- diff --git a/package-data-list.lisp-expr b/package-data-list.lisp-expr index 03af7eb..4234d03 100644 --- a/package-data-list.lisp-expr +++ b/package-data-list.lisp-expr @@ -1395,7 +1395,7 @@ is a good idea, but see SB-SYS re. blurring of boundaries." #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" diff --git a/src/code/thread.lisp b/src/code/thread.lisp index fcbdd94..458095f 100644 --- a/src/code/thread.lisp +++ b/src/code/thread.lisp @@ -1,4 +1,6 @@ -(in-package :sb!thread) +(in-package "SB!THREAD") + +(defvar *session-lock*) (sb!xc:defmacro with-recursive-lock ((mutex) &body body) #!+sb-thread diff --git a/src/runtime/runtime.c b/src/runtime/runtime.c index ad6a34b..6900e50 100644 --- a/src/runtime/runtime.c +++ b/src/runtime/runtime.c @@ -468,13 +468,14 @@ static void /* noreturn */ parent_loop(void) 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); diff --git a/version.lisp-expr b/version.lisp-expr index f875a95..dc89546 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -17,4 +17,4 @@ ;;; 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"