Cabal-3.10.1.0: A framework for packaging Haskell software

Safe Haskell | Safe-Inferred
Language | Haskell2010

Distribution.Compat.CreatePipe

Description

Deprecated: Use System.Process from package process directly

Synopsis

- createPipe :: IO (Handle, Handle)

# Documentation

createPipe :: IO (Handle, Handle) Source #

Create a pipe for interprocess communication and return a `(readEnd, writeEnd)` `Handle` pair.

- WinIO Support

When this function is used with WinIO enabled it's the caller's responsibility to register the handles with the I/O manager. If this is not done the operation will deadlock. Association can be done as follows:

        #if defined(IO_MANAGER_WINIO)
        import GHC.IO.SubSystem ((!))
        import GHC.IO.Handle.Windows (handleToHANDLE)
        import GHC.Event.Windows (associateHandle')
        #endif

        ...

        #if defined (IO_MANAGER_WINIO)
        return () ! (do
          associateHandle' =handleToHANDLE <handle)
        #endif

Only associate handles that you are in charge of read/writing to. Do not associate handles passed to another process. It's the process's reponsibility to register the handle if it supports async access.

Since: process-1.2.1.0