From 359a077da1593965e03b4cce36401f94ad1faecd Mon Sep 17 00:00:00 2001 From: marco Date: Tue, 18 Nov 2003 10:12:25 +0000 Subject: [PATCH] * Small fixes for EAGAIN. bunxfunc only has comments added. --- rtl/bsd/bunxfunc.inc | 7 +++++-- rtl/bsd/osmain.inc | 9 ++++++--- 2 files changed, 11 insertions(+), 5 deletions(-) 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