-- Idris2

import System
import System.Concurrency

-- Test `conditionWaitTimeout` times out for 1 main and 1 child thread

main : IO ()
main =
  do cvMutex <- makeMutex
     cv <- makeCondition
     t <- fork $ do mutexAcquire cvMutex
                    conditionWaitTimeout cv cvMutex 1000000
                    putStrLn "Where are you mother?"
                    mutexRelease cvMutex
     sleep 2
     putStrLn "Sorry I'm late child!"
     threadWait t

