Skip to content

Commit 83f53e4

Browse files
Added threadStatus to io-classes interface
1 parent 86b74b4 commit 83f53e4

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

io-classes/src/Control/Monad/Class/MonadFork.hs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@ import qualified Control.Concurrent as IO
1616
import Control.Exception (AsyncException (ThreadKilled), Exception)
1717
import Control.Monad.Reader (ReaderT (..), lift)
1818
import Data.Kind (Type)
19-
import qualified GHC.Conc.Sync as IO (labelThread)
19+
import GHC.Conc (ThreadStatus)
20+
import qualified GHC.Conc.Sync as IO (labelThread, threadStatus)
2021

2122

2223
class (Monad m, Eq (ThreadId m),
@@ -27,6 +28,7 @@ class (Monad m, Eq (ThreadId m),
2728

2829
myThreadId :: m (ThreadId m)
2930
labelThread :: ThreadId m -> String -> m ()
31+
threadStatus :: ThreadId m -> m ThreadStatus
3032

3133

3234
class MonadThread m => MonadFork m where
@@ -53,6 +55,7 @@ instance MonadThread IO where
5355
type ThreadId IO = IO.ThreadId
5456
myThreadId = IO.myThreadId
5557
labelThread = IO.labelThread
58+
threadStatus = IO.threadStatus
5659

5760
instance MonadFork IO where
5861
forkIO = IO.forkIO
@@ -65,6 +68,7 @@ instance MonadThread m => MonadThread (ReaderT r m) where
6568
type ThreadId (ReaderT r m) = ThreadId m
6669
myThreadId = lift myThreadId
6770
labelThread t l = lift (labelThread t l)
71+
threadStatus t = lift (threadStatus t)
6872

6973
instance MonadFork m => MonadFork (ReaderT e m) where
7074
forkIO (ReaderT f) = ReaderT $ \e -> forkIO (f e)

0 commit comments

Comments
 (0)