Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] View of /sml/trunk/src/cml/cml-lib/multicast-sig.sml
ViewVC logotype

View of /sml/trunk/src/cml/cml-lib/multicast-sig.sml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 651 - (download) (annotate)
Thu Jun 1 18:34:03 2000 UTC (20 years ago) by monnier
File size: 963 byte(s)
bring revisions from the vendor branch to the trunk
(* multicast-sig.sml
 *
 * COPYRIGHT (c) 1990 by John H. Reppy.  See COPYRIGHT file for details.
 *
 * Asynchronous multicast (one-to-many) channels.
 *)

signature MULTICAST =
  sig

    type 'a mchan
    type 'a port
    type 'a event = 'a CML.event

    val mChannel : unit -> 'a mchan
	(* create a new multicast channel *)
    val port : 'a mchan -> 'a port
	(* create a new output port on a channel *)
    val copy : 'a port -> 'a port
	(* create a new output port on a channel that has the same state as the
	 * given port.  I.e., the stream of messages seen on the two ports will
	 * be the same.
	 * NOTE: if two (or more) independent threads are reading from the
	 * same port, then the copy operation may not be accurate.
	 *)
    val recv : 'a port -> 'a
    val recvEvt : 'a port -> 'a event
	(* receive a message from a port *)
    val multicast : ('a mchan * 'a) -> unit
	(* send a message to all of the ports of a channel *)

  end (* MULTICAST *)

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0