| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
System.IOManager
Contents
Description
A shim layer for `Win32-network`'s IOManager
Synopsis
- type WithIOManager = forall a. (IOManager -> IO a) -> IO a
- newtype IOManager = IOManager {
- associateWithIOManager :: forall hole. hole -> IO ()
- type IOManagerError = Void
- withIOManager :: WithIOManager
- type AssociateWithIOCP = IOManager
- associateWithIOCP :: forall hole. IOManager -> hole -> IO ()
Documentation
This is public api to interact with the io manager; On Windows IOManager
holds associateWithIOCompletionPort;
on other platforms IOManager can run over any type, and thus is
guaranteed to be no-op.
Constructors
| IOManager | |
Fields
| |
type IOManagerError = Void Source #
withIOManager :: WithIOManager Source #
withIOManager allows to do asynchronous io on Windows hiding the
differences between posix and Win32.
It starts an io manger thread, which should be only one running at a time, so
the best place to call it is very close to the main function and last for
duration of the application.
Async IO operatitions which are using the iocp port should not leak
out-side of withIOManager. They will be silently cancelled when
withIOManager exists. In particular one should not return IOManager
from withIOManager.
Deprecated API
type AssociateWithIOCP = IOManager Source #
Deprecated: Usage of type alias AssociateWithIOCP is deprecated, use IOManager instead
associateWithIOCP :: forall hole. IOManager -> hole -> IO () Source #
Deprecated: Usage of associateWithIOCP is deprecated, use associateWithIOManager instead.