diff --git a/Source/NSRunLoop.m b/Source/NSRunLoop.m index 5e5cc9737..7db860d8e 100644 --- a/Source/NSRunLoop.m +++ b/Source/NSRunLoop.m @@ -62,6 +62,7 @@ #include #include #include +#include #include #ifndef __WIN32__ @@ -1239,13 +1240,20 @@ static int debug_run_loop = 0; if (select_return < 0) { - /* Some exceptional condition happened. */ - /* xxx We can do something with exception_fds, instead of - aborting here. */ - perror ("[TcpInPort receivePacketWithTimeout:] select()"); - abort (); + if (errno == EINTR) + { + select_return = 0; + } + else + { + /* Some exceptional condition happened. */ + /* xxx We can do something with exception_fds, instead of + aborting here. */ + perror ("[NSRunLoop receivePacketWithTimeout:] select()"); + abort (); + } } - else if (select_return == 0) + if (select_return == 0) { NSFreeMapTable (rfd_2_object); NSFreeMapTable (wfd_2_object);