Change `drainOutput`'s `tcdrain(3)` into a `safe` FFI call
authorHerbert Valerio Riedel <hvr@gnu.org>
Sat, 30 Jan 2016 15:58:31 +0000 (16:58 +0100)
committerHerbert Valerio Riedel <hvr@gnu.org>
Sat, 30 Jan 2016 15:58:31 +0000 (16:58 +0100)
Since the primary purpose of `tcdrain(3)` is to block it makes much more
sense to use a `safe` FFI import.

System/Posix/Terminal/Common.hsc
changelog.md

index 4825b10..68ce321 100644 (file)
@@ -421,7 +421,7 @@ drainOutput :: Fd -> IO ()
 #if HAVE_TCDRAIN
 drainOutput (Fd fd) = throwErrnoIfMinus1_ "drainOutput" (c_tcdrain fd)
 
-foreign import capi unsafe "termios.h tcdrain"
+foreign import capi safe "termios.h tcdrain"
   c_tcdrain :: CInt -> IO CInt
 #else
 {-# WARNING drainOutput
index c6d6b69..1105cba 100644 (file)
@@ -8,8 +8,10 @@
 
   * Don't assume existence of `ctermid(3)`/`tcdrain(3)`
 
+  * Change `drainOutput`'s `tcdrain(3)` into a `safe` FFI call
+
   * Turn build error into compile warnings for exotic `struct stat`
-    configurations (GHC #8859).
+    configurations (GHC #8859)
 
   * Improve detection of `fdatasync(2)` (GHC #11137)