fix getFileStatus: interrupted (Interrupted system call) build failure on Solaris
authorKarel Gardas <karel.gardas@centrum.cz>
Wed, 26 Feb 2014 11:14:26 +0000 (12:14 +0100)
committerAustin Seipp <austin@well-typed.com>
Fri, 28 Feb 2014 18:08:13 +0000 (12:08 -0600)
Patch provided by Christian Maeder <Christian.Maeder@dfki.de>

Signed-off-by: Karel Gardas <karel.gardas@centrum.cz>
Signed-off-by: Austin Seipp <austin@well-typed.com>
System/Posix/Files.hsc
System/Posix/Files/ByteString.hsc

index 49c9bc1..a54443a 100644 (file)
@@ -96,6 +96,7 @@ import Foreign.C
 
 import System.Posix.Types
 import System.Posix.Files.Common
+import System.Posix.Error
 import System.Posix.Internals
 
 import Data.Time.Clock.POSIX
@@ -165,7 +166,7 @@ getFileStatus path = do
   fp <- mallocForeignPtrBytes (#const sizeof(struct stat))
   withForeignPtr fp $ \p ->
     withFilePath path $ \s ->
-      throwErrnoPathIfMinus1_ "getFileStatus" path (c_stat s p)
+      throwErrnoPathIfMinus1Retry_ "getFileStatus" path (c_stat s p)
   return (FileStatus fp)
 
 -- | Acts as 'getFileStatus' except when the 'FilePath' refers to a symbolic
index b25a823..4f8a05f 100644 (file)
@@ -172,7 +172,7 @@ getFileStatus path = do
   fp <- mallocForeignPtrBytes (#const sizeof(struct stat)) 
   withForeignPtr fp $ \p ->
     withFilePath path $ \s -> 
-      throwErrnoPathIfMinus1_ "getFileStatus" path (c_stat s p)
+      throwErrnoPathIfMinus1Retry_ "getFileStatus" path (c_stat s p)
   return (FileStatus fp)
 
 -- | Acts as 'getFileStatus' except when the 'RawFilePath' refers to a symbolic