mirror of
https://github.com/ilyakooo0/streamly.git
synced 2024-10-06 21:27:35 +03:00
31 lines
833 B
Haskell
31 lines
833 B
Haskell
import Control.Concurrent (threadDelay, myThreadId)
|
|
import Control.Monad.IO.Class (liftIO)
|
|
import System.Random (randomIO)
|
|
import System.IO
|
|
import Control.Applicative
|
|
|
|
import Strands
|
|
|
|
main = wait $ threads 3 $ do
|
|
liftIO $ hSetBuffering stdout LineBuffering
|
|
mainThread <- liftIO myThreadId
|
|
liftIO $ putStrLn $ "Main thread: " ++ show mainThread
|
|
|
|
eventA <|> eventB
|
|
|
|
eventA = do
|
|
x <- sample (randomIO :: IO Int) 1000000
|
|
evThread <- liftIO myThreadId
|
|
liftIO $ putStrLn $ "X Event thread: " ++ show evThread
|
|
liftIO $ putStrLn $ "x = " ++ (show x)
|
|
return x
|
|
|
|
eventB = do
|
|
y <- sample (randomIO :: IO Int) 1000000
|
|
|
|
-- liftIO $ threadDelay 10000000
|
|
evThread <- liftIO myThreadId
|
|
liftIO $ putStrLn $ "Y Event thread: " ++ show evThread
|
|
liftIO $ putStrLn $ "y = " ++ (show y)
|
|
return y
|