{-# LANGUAGE UnliftedFFITypes #-}
{-# LANGUAGE ForeignFunctionInterface #-}
{-# LANGUAGE MagicHash #-}
module System.Metrics.ThreadId
    ( myCapability
    ) where

import qualified Control.Concurrent as Concurrent

myCapability :: IO Int
myCapability :: IO Int
myCapability = (Int -> IO Int
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return (Int -> IO Int) -> ((Int, Bool) -> Int) -> (Int, Bool) -> IO Int
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Int, Bool) -> Int
forall a b. (a, b) -> a
fst) ((Int, Bool) -> IO Int) -> IO (Int, Bool) -> IO Int
forall (m :: * -> *) a b. Monad m => (a -> m b) -> m a -> m b
=<< ThreadId -> IO (Int, Bool)
Concurrent.threadCapability (ThreadId -> IO (Int, Bool)) -> IO ThreadId -> IO (Int, Bool)
forall (m :: * -> *) a b. Monad m => (a -> m b) -> m a -> m b
=<<
               IO ThreadId
Concurrent.myThreadId