[Gd-chatter] r11123 - trunk/libraries/interfaces

hannes at gwydiondylan.org hannes at gwydiondylan.org
Sat Jan 6 00:15:18 CET 2007


Author: hannes
Date: Sat Jan  6 00:15:17 2007
New Revision: 11123

Modified:
   trunk/libraries/interfaces/interfaces.dylan
   trunk/libraries/interfaces/module.dylan
Log:
Bug: 7299
*use interruptible-system-call here


Modified: trunk/libraries/interfaces/interfaces.dylan
==============================================================================
--- trunk/libraries/interfaces/interfaces.dylan	(original)
+++ trunk/libraries/interfaces/interfaces.dylan	Sat Jan  6 00:15:17 2007
@@ -68,13 +68,16 @@
   => (buffer)
   let buffer = make(<buffer>, size: $ethernet-buffer-size);
   local method unix-receive ()
-            let read-bytes = unix-recv-buffer(interface.unix-file-descriptor,
-                                              buffer-offset(buffer, 0),
-                                              $ethernet-buffer-size,
-                                              0);
+          let fd = interface.unix-file-descriptor;
+          let read-bytes =
+            interruptible-system-call(unix-recv-buffer(fd,
+                                                       buffer-offset(buffer, 0),
+                                                       $ethernet-buffer-size,
+                                                       0));
             if (read-bytes == -1)
               //Only want to catch $EINTR, but getting mps assertion failures
-              unix-receive();
+              //this is now done via interruptible-system-call macro
+              #f;
             else
               subsequence(buffer, end: read-bytes);
             end if;

Modified: trunk/libraries/interfaces/module.dylan
==============================================================================
--- trunk/libraries/interfaces/module.dylan	(original)
+++ trunk/libraries/interfaces/module.dylan	Sat Jan  6 00:15:17 2007
@@ -13,6 +13,7 @@
   use functional-dylan, import: { <byte-character> };
   use dylan-extensions, import: { <byte> };
   use unix-sockets, exclude: { send, connect };
+  use sockets, import: { interruptible-system-call };
   use C-FFI;
   use dylan-direct-c-ffi;
   use flow;



More information about the chatter mailing list