{-# options_haddock prune #-}
module Polysemy.Process.SystemProcess (
module Polysemy.Process.Effect.SystemProcess,
module Polysemy.Process.Interpreter.SystemProcess,
module Polysemy.Process.SysProcConf,
currentPid,
) where
import System.Posix (getProcessID)
import Polysemy.Process.Data.Pid (Pid)
import Polysemy.Process.Effect.SystemProcess (
SystemProcess,
interrupt,
pid,
readStderr,
readStdout,
signal,
wait,
withSystemProcess,
writeStdin,
)
import Polysemy.Process.Interpreter.SystemProcess (
SysProcConf,
interpretSystemProcessNative,
interpretSystemProcessNativeSingle,
interpretSystemProcessWithProcess,
)
import Polysemy.Process.SysProcConf
currentPid ::
Member (Embed IO) r =>
Sem r Pid
currentPid :: forall (r :: EffectRow). Member (Embed IO) r => Sem r Pid
currentPid =
ProcessID -> Pid
forall a b. (Integral a, Num b) => a -> b
fromIntegral (ProcessID -> Pid) -> Sem r ProcessID -> Sem r Pid
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> IO ProcessID -> Sem r ProcessID
forall (m :: * -> *) (r :: EffectRow) a.
Member (Embed m) r =>
m a -> Sem r a
embed IO ProcessID
getProcessID