~ chicken-core (chicken-5) faeb66ebe92ae51bd497b8b85218516317372285


commit faeb66ebe92ae51bd497b8b85218516317372285
Author:     felix <felix@call-with-current-continuation.org>
AuthorDate: Tue Jun 21 10:16:20 2011 +0200
Commit:     felix <felix@call-with-current-continuation.org>
CommitDate: Tue Jun 21 10:16:20 2011 +0200

    re-applied patch to set and clear error-fdset in scheduler

diff --git a/scheduler.scm b/scheduler.scm
index a1a177e6..975c507f 100644
--- a/scheduler.scm
+++ b/scheduler.scm
@@ -31,7 +31,7 @@
   (hide ready-queue-head ready-queue-tail ##sys#timeout-list
 	##sys#update-thread-state-buffer ##sys#restore-thread-state-buffer
 	remove-from-ready-queue ##sys#unblock-threads-for-i/o ##sys#force-primordial
-	fdset-input-set fdset-output-set fdset-clear
+	fdset-input-set fdset-output-set fdset-error-set fdset-clear
 	fdset-select-timeout fdset-set fdset-test
 	create-fdset stderr
 	##sys#clear-i/o-state-for-thread! ##sys#abandon-mutexes) 
@@ -367,7 +367,8 @@ EOF
 (define fdset-clear
   (foreign-lambda* void ()
     "FD_ZERO(&C_fdset_input);"
-    "FD_ZERO(&C_fdset_output);") )
+    "FD_ZERO(&C_fdset_output);"
+    "FD_ZERO(&C_fdset_error);") )
 
 (define fdset-input-set
   (foreign-lambda* void ([int fd])
@@ -377,8 +378,13 @@ EOF
   (foreign-lambda* void ([int fd])
     "FD_SET(fd, &C_fdset_output);" ) )
 
+(define fdset-error-set
+  (foreign-lambda* void ([int fd])
+    "FD_SET(fd, &C_fdset_error);" ) )
+
 (define (fdset-set fd i/o)
   (dbg "setting fdset for " fd " to " i/o)
+  (fdset-error-set fd)
   (case i/o
     ((#t #:input) (fdset-input-set fd))
     ((#f #:output) (fdset-output-set fd))
Trap