diff options
Diffstat (limited to 'otherlibs/systhreads/event.mli')
| -rw-r--r-- | otherlibs/systhreads/event.mli | 82 |
1 files changed, 0 insertions, 82 deletions
diff --git a/otherlibs/systhreads/event.mli b/otherlibs/systhreads/event.mli deleted file mode 100644 index 21d5459a57..0000000000 --- a/otherlibs/systhreads/event.mli +++ /dev/null @@ -1,82 +0,0 @@ -(***********************************************************************) -(* *) -(* Objective Caml *) -(* *) -(* David Nowak and Xavier Leroy, projet Cristal, INRIA Rocquencourt *) -(* *) -(* Copyright 1996 Institut National de Recherche en Informatique et *) -(* en Automatique. All rights reserved. This file is distributed *) -(* under the terms of the GNU Library General Public License, with *) -(* the special exception on linking described in file ../../LICENSE. *) -(* *) -(***********************************************************************) - -(* $Id$ *) - -(** First-class synchronous communication. - - This module implements synchronous inter-thread communications over - channels. As in John Reppy's Concurrent ML system, the communication - events are first-class values: they can be built and combined - independently before being offered for communication. -*) - -type 'a channel -(** The type of communication channels carrying values of type ['a]. *) - -val new_channel : unit -> 'a channel -(** Return a new channel. *) - -type 'a event -(** The type of communication events returning a result of type ['a]. *) - -(** [send ch v] returns the event consisting in sending the value [v] - over the channel [ch]. The result value of this event is [()]. *) -val send : 'a channel -> 'a -> unit event - -(** [receive ch] returns the event consisting in receiving a value - from the channel [ch]. The result value of this event is the - value received. *) -val receive : 'a channel -> 'a event - -val always : 'a -> 'a event -(** [always v] returns an event that is always ready for - synchronization. The result value of this event is [v]. *) - -val choose : 'a event list -> 'a event -(** [choose evl] returns the event that is the alternative of - all the events in the list [evl]. *) - -val wrap : 'a event -> ('a -> 'b) -> 'b event -(** [wrap ev fn] returns the event that performs the same communications - as [ev], then applies the post-processing function [fn] - on the return value. *) - -val wrap_abort : 'a event -> (unit -> unit) -> 'a event -(** [wrap_abort ev fn] returns the event that performs - the same communications as [ev], but if it is not selected - the function [fn] is called after the synchronization. *) - -val guard : (unit -> 'a event) -> 'a event -(** [guard fn] returns the event that, when synchronized, computes - [fn()] and behaves as the resulting event. This allows to - compute events with side-effects at the time of the synchronization - operation. *) - -val sync : 'a event -> 'a -(** ``Synchronize'' on an event: offer all the communication - possibilities specified in the event to the outside world, - and block until one of the communications succeed. The result - value of that communication is returned. *) - -val select : 'a event list -> 'a -(** ``Synchronize'' on an alternative of events. - [select evl] is shorthand for [sync(choose evl)]. *) - -val poll : 'a event -> 'a option -(** Non-blocking version of {!Event.sync}: offer all the communication - possibilities specified in the event to the outside world, - and if one can take place immediately, perform it and return - [Some r] where [r] is the result value of that communication. - Otherwise, return [None] without blocking. *) - |
