Browse Source

* retry close() in fpclosedir() when it returns EINTR

git-svn-id: trunk@21548 -
Jonas Maebe 13 years ago
parent
commit
e7320ee729
1 changed files with 3 additions and 2 deletions
  1. 3 2
      rtl/linux/ossysc.inc

+ 3 - 2
rtl/linux/ossysc.inc

@@ -175,9 +175,10 @@ begin
 end;
 
 function Fpclosedir(dirp : pdir): cint; [public, alias : 'FPC_SYSC_CLOSEDIR'];
-
 begin
-  Fpclosedir:=Fpclose(dirp^.dd_fd);
+  repeat
+    Fpclosedir:=Fpclose(dirp^.dd_fd);
+  until (Fpclosedir=0) or (errno<>ESysEINTR);
   dispose(dirp^.dd_buf);
   dispose(dirp);
 end;