module Unfork.Async.WithResult.Future where
import qualified Control.Concurrent.MVar as MVar
data Future result =
Future
(MVar.MVar result)
await :: Future result -> IO result
await :: Future result -> IO result
await (Future MVar result
v) = MVar result -> IO result
forall a. MVar a -> IO a
MVar.readMVar MVar result
v
poll :: Future result -> IO (Maybe result)
poll :: Future result -> IO (Maybe result)
poll (Future MVar result
v) = MVar result -> IO (Maybe result)
forall a. MVar a -> IO (Maybe a)
MVar.tryReadMVar MVar result
v