Using unsafe foreign import for rtsSupportsBoundThreads (part of #9696)
authorMarcin Mrotek <marcin.jan.mrotek@gmail.com>
Sat, 5 Mar 2016 19:02:18 +0000 (20:02 +0100)
committerBen Gamari <ben@smart-cactus.org>
Sat, 5 Mar 2016 19:02:19 +0000 (20:02 +0100)
A safe import is unnecessary considering rtsSupportsBoundThreads simply
returns a constant.

This commit doesn't fix the main issue of ticket #9696 that
"readRawBufferPtr and writeRawBufferPtr allocate memory".

Reviewers: bgamari, austin, hvr

Reviewed By: hvr

Subscribers: thomie

Differential Revision: https://phabricator.haskell.org/D1964

GHC Trac Issues: #9696

libraries/base/Control/Concurrent.hs
libraries/base/GHC/ConsoleHandler.hs
libraries/base/GHC/IO/FD.hs

index e047662..535b2f0 100644 (file)
@@ -253,7 +253,7 @@ waiting for the results in the main thread.
 -- If @rtsSupportsBoundThreads@ is 'False', 'isCurrentThreadBound'
 -- will always return 'False' and both 'forkOS' and 'runInBoundThread' will
 -- fail.
-foreign import ccall rtsSupportsBoundThreads :: Bool
+foreign import ccall unsafe rtsSupportsBoundThreads :: Bool
 
 
 {- |
index 6d1e36f..8579c22 100644 (file)
@@ -7,7 +7,7 @@
 -- Module      :  GHC.ConsoleHandler
 -- Copyright   :  (c) The University of Glasgow
 -- License     :  see libraries/base/LICENSE
--- 
+--
 -- Maintainer  :  cvs-ghc@haskell.org
 -- Stability   :  internal
 -- Portability :  non-portable (GHC extensions)
@@ -15,7 +15,7 @@
 -- NB. the contents of this module are only available on Windows.
 --
 -- Installing Win32 console handlers.
--- 
+--
 -----------------------------------------------------------------------------
 
 module GHC.ConsoleHandler
@@ -137,9 +137,9 @@ installHandler handler
 
    no_handler = errorWithoutStackTrace "win32ConsoleHandler"
 
-foreign import ccall "rtsSupportsBoundThreads" threaded :: Bool
+foreign import ccall unsafe "rtsSupportsBoundThreads" threaded :: Bool
 
-foreign import ccall unsafe "RtsExternal.h rts_InstallConsoleEvent" 
+foreign import ccall unsafe "RtsExternal.h rts_InstallConsoleEvent"
   rts_installHandler :: CInt -> Ptr (StablePtr (CInt -> IO ())) -> IO CInt
 foreign import ccall unsafe "RtsExternal.h rts_ConsoleHandlerDone"
   rts_ConsoleHandlerDone :: CInt -> IO ()
index eb7b80b..fb8a1d5 100644 (file)
@@ -638,7 +638,7 @@ foreign import WINDOWS_CCONV safe "send"
 
 #endif
 
-foreign import ccall "rtsSupportsBoundThreads" threaded :: Bool
+foreign import ccall unsafe "rtsSupportsBoundThreads" threaded :: Bool
 
 -- -----------------------------------------------------------------------------
 -- utils