MyNixOS website logo
Description

Orphan instances for MonadBase and MonadBaseControl.

This module exports instances for MonadBase IO and MonadBaseControl IO for the Process monad. This is for use
in conjunction with a library requiring these instances, such as thelifted-base package.

A tutorial segment regarding use of this in distributed-process applications may be found here.

Please excercise caution in usage of this instance, as it can enable use of functions such as forkIO (or, fork from 'lifted-base') which compromise invariants in the Process monad and can lead to confusing and subtle issues. Always use the Cloud Haskell functions such as spawnLocal instead.

example usage:

import Control.Distributed.Process.MonadBaseControl()
import Control.Concurrent.MVar.Lifted (withMVar)

processWithMVar :: MVar a -> (a -> Process b) -> Process b
processWithMvar = withMVar

distributed-process-monad-control

Orphan instances for MonadBase and MonadBaseControl. Please see the tutorial for an introduction and use case for these instances. Also please note that these instances enable the use of functions that are un-sound in the context of distributed-process. Functions such as forkIO (or, fork from lifted-base) compromise invariants in the Process monad and can lead to confusing and subtle issues. Always use the Cloud Haskell functions such as spawnLocal instead.

This repository is part of Cloud Haskell.

See http://haskell-distributed.github.io for documentation, user guides, tutorials and assistance.

Getting Help / Raising Issues

Please visit our bug tracker to submit issues. Anyone can browse, although you'll need to provide an email address and create an account in order to submit new issues.

If you'd like to talk to a human, please contact us at the parallel-haskell mailing list in the first instance - [email protected].

License

distributed-process-monad-control is made available under a BSD-3 license.

Metadata

Version

0.5.1.3

Platforms (77)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-freebsd
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64-windows
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-darwin
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-darwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows