aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/signals002.hs
blob: b2e6e5e422da6794a5ef136e8fbb8fa5b29820f6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import System.Posix
import Control.Concurrent

-- !!! test blockSignals, raiseSignal, unblockSignals, getPendingSignals

main = do
  blockSignals ( userDefinedSignal1 `addSignal` emptySignalSet )
  raiseSignal userDefinedSignal1
  set <- getPendingSignals
  print (userDefinedSignal1 `inSignalSet` set)
  m <- newEmptyMVar 
  installHandler userDefinedSignal1 
	(Catch (putStrLn "hello" >> putMVar m ())) Nothing
  awaitSignal (Just emptySignalSet)
  takeMVar m