X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Ffd-stream.lisp;h=1428363c0541ced5448e35dc1e16dc25677f5885;hb=496071a75429677a2c064e4995c379d3ba6ec458;hp=8d369bdd59982b7bf25b2237026c6cb1973a66a1;hpb=de7e68bb937622ca7fe99a1acbf26703b7695cc7;p=sbcl.git diff --git a/src/code/fd-stream.lisp b/src/code/fd-stream.lisp index 8d369bd..1428363 100644 --- a/src/code/fd-stream.lisp +++ b/src/code/fd-stream.lisp @@ -70,8 +70,8 @@ ;; ;; ...again, once we have smarted locks the spinlock here can become ;; a mutex. - `(sb!thread::call-with-system-spinlock (lambda () ,@body) - *available-buffers-spinlock*)) + `(sb!thread::with-system-spinlock (*available-buffers-spinlock*) + ,@body)) (defconstant +bytes-per-buffer+ (* 4 1024) #!+sb-doc @@ -847,7 +847,8 @@ (let ((fd (fd-stream-fd stream)) (errno 0) (count 0)) - (declare (dynamic-extent fd errno count)) + (declare (optimize sb!c::stack-allocate-value-cells) + (dynamic-extent fd errno count)) (tagbody ;; Check for blocking input before touching the stream, as if ;; we happen to wait we are liable to be interrupted, and the @@ -2380,7 +2381,7 @@ ;; Calculate useful stuff. (multiple-value-bind (input output mask) - (case direction + (ecase direction (:input (values t nil sb!unix:o_rdonly)) (:output (values nil t sb!unix:o_wronly)) (:io (values t t sb!unix:o_rdwr))