MyNixOS website logo
Description

Timers, timeouts, alarms, monadic wrappers.

This library provides several timer and timeout related tools:

  • Control.Timeout - Execution of a computation with a time limit, aborting it if the limit is reached before the computation finishes. It is more-or-less a lifted version of System.Timeout from the base package. It's good for single use, but it launches a temporary helper thread. If you want to time-limit actions continuously (e.g. if you're implementing a network protocol), you should probably use one of the other tools described below, since they use a single dedicated thread for all the timeouts.

  • Control.Timer - Managing a timer running in a dedicated thread. The timer waits for an amount of time you specify, and then runs an action you specify. You can stop and restart it at any time.

  • Control.Alarm - Managing an alarm, which is a timer whose action is to notify your thread when the specified amount of time passes.

  • Control.Monad.Trans.Timer - A monad transformer for managing a timer

  • Control.Monad.Trans.Alarm - A monad transformer for managing an alarm

  • Control.Monad.Trans.Timeout - A monad transformer for running actions with timeouts, useful for e.g. network protocols where any send and receive can timeout

  • Control.Monad.Timeout.Class - A monad typeclass for running actions with a time limit. Control.Timeout provides a simple trivial for IO (which can then be used with any MonadIO), and Control.Monad.Trans.Timeout provides a scalable instance.

See the .cabal file for more info and link to project website the version control.

The official download location is Hackage:

http://hackage.haskell.org/package/time-out

This library is free software, and is committed to software freedom. It is released to the public domain using the CC0 Public Domain Dedication. For the boring "legal" details see the file 'COPYING'.

See the file 'INSTALL' for hints on installation. The file 'ChangeLog' explains how to see the history log of the changes done in the code. 'NEWS' provides a friendly overview of the changes for each release.

Metadata

Version

0.2

License

publicDomain

Platforms (75)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • 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