aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--System/Posix/Process.hsc8
1 files changed, 7 insertions, 1 deletions
diff --git a/System/Posix/Process.hsc b/System/Posix/Process.hsc
index 5549d23..0583063 100644
--- a/System/Posix/Process.hsc
+++ b/System/Posix/Process.hsc
@@ -71,6 +71,7 @@ import System.IO.Error
import System.Exit
import System.Posix.Types
import System.Posix.Signals
+import Monad
-- -----------------------------------------------------------------------------
-- Process environment
@@ -152,7 +153,12 @@ foreign import ccall unsafe "times"
-- Process scheduling priority
nice :: Int -> IO ()
-nice prio = throwErrnoIfMinus1_ "nice" (c_nice (fromIntegral prio))
+nice prio = do
+ resetErrno
+ res <- c_nice (fromIntegral prio)
+ when (res == -1) $ do
+ err <- getErrno
+ when (err /= eOK) (throwErrno "nice")
foreign import ccall unsafe "nice"
c_nice :: CInt -> IO CInt