diff --git a/rtl/bsd/bunxfunc.inc b/rtl/bsd/bunxfunc.inc index 7a8395804c..526681e9c6 100644 --- a/rtl/bsd/bunxfunc.inc +++ b/rtl/bsd/bunxfunc.inc @@ -151,7 +151,7 @@ begin time_to_sleep.tv_nsec := 0; if (FPnanosleep(@time_to_sleep, @time_remaining) <> -1) Then Exit(0); - if (geterrno <> ESysEINTR) Then + if (geterrno <> ESysEINTR) Then // EAGAIN? Exit (seconds); { best guess } FPsleep:= time_remaining.tv_sec; if (time_remaining.tv_nsec <> 0) Then @@ -454,7 +454,10 @@ end; { $Log$ - Revision 1.5 2003-10-26 17:01:04 marco + Revision 1.6 2003-11-18 10:12:25 marco + * Small fixes for EAGAIN. bunxfunc only has comments added. + + Revision 1.5 2003/10/26 17:01:04 marco * moved sigprocmask to system Revision 1.4 2003/09/27 13:45:58 peter diff --git a/rtl/bsd/osmain.inc b/rtl/bsd/osmain.inc index 3a5aace12d..5e50c05d3b 100644 --- a/rtl/bsd/osmain.inc +++ b/rtl/bsd/osmain.inc @@ -209,7 +209,7 @@ Function Do_Write(Handle,Addr,Len:Longint):longint; Begin repeat Do_Write:=Fpwrite(Handle,pchar(addr),len); - until ErrNo<>ESysEINTR; + until (ErrNo<>ESysEINTR) and (Errno<>ESysEAgain); If Do_Write<0 Then Begin Errno2InOutRes; @@ -224,7 +224,7 @@ Function Do_Read(Handle,Addr,Len:Longint):Longint; Begin repeat Do_Read:=Fpread(Handle,pchar(addr),len); - until ErrNo<>ESysEINTR; + until (ErrNo<>ESysEINTR) and (ErrNo<>ESysEAgain); If Do_Read<0 Then Begin Errno2InOutRes; @@ -670,7 +670,10 @@ End. { $Log$ - Revision 1.5 2003-10-27 17:12:45 marco + Revision 1.6 2003-11-18 10:12:25 marco + * Small fixes for EAGAIN. bunxfunc only has comments added. + + Revision 1.5 2003/10/27 17:12:45 marco * fixes for signal handling. Revision 1.4 2003/10/26 17:01:04 marco