******************************************************************************
README - Equeue, event queues for O'Caml
******************************************************************************


==============================================================================
Abstract
==============================================================================

Equeue provides a generic event queue module, and a specific module for file 
descriptor events. 

Equeue may work stand-alone or in conjunction with camltk, the Tcl/Tk-based GUI 
toolkit for O'Caml (or with any other toolkit on the basis of Tcl). 

==============================================================================
Download
==============================================================================

You can download Equeue as gzip'ed tarball [1]. 

==============================================================================
User's Manual
==============================================================================

The manual is included in the distribution both as Postscript document and 
bunch of HTML files. An online version can be found here [2]. 

==============================================================================
Author, Copying
==============================================================================

Equeue has been written by Gerd Stolpmann [3]. You may copy it as you like, you 
may use it even for commercial purposes as long as the license conditions are 
respected, see the file LICENSE coming with the distribution. It allows almost 
everything. 

==============================================================================
Description
==============================================================================

Equeue contains a generic implementation of queues of events of any type, and a 
specific implementation of queues of file descriptor events.

The generic module allows to associate an event queue with an event source, and 
one or several event handlers. The event source generates new events that are 
triggered from the outer world. The handlers consume events, but it is allowed 
that handlers also generate events.

The module for file descriptor events already defines an event source; this 
source watches registered file descriptors and produces events if a descriptor 
wants to deliver data, or if a descriptor is ready to accept data. As in the 
generic module, the handlers consume the events.

It is possible to let Equeue cooperate with the event queue implementation of 
Tcl.

The main application of these modules are implementations of protocol stacks 
which can cooperate with each other.

------------------------------------------------------------------------------
Recent Changes
------------------------------------------------------------------------------

-  Changed in 1.2.2: The TCL extension can be built as shared library when 
   compiled with O'Caml 3.03-alpha.
   
-  Changed in 1.2.1: It is now possible to add events/resources to a system 
   even if the system is currently running in a different thread. If the other 
   thread is blocking, it is waked up and forced to reschedule the system.
   
-  Changed in 1.2: Unixqueue has now an Extra event that can be used for custom 
   events. Several improvements in Unixqueue and Equeue.
   The Unixqueue module is now thread-safe, and the same event system can be 
   safely accessed from several threads.
   There is now a second version of the TCL extension which bases on existing 
   labltk bindings.
   The sources have been reorganized.
   
-  Changed in 1.1.4: Fixed META (only multi-threaded programs are affected)
   
-  Changed in 1.1.3: Upgrade for O'Caml 3. Fixed some errors, too.
   
-  Changed in 1.1.2: Updated URLs in documentation.
   
-  Changed in 1.1.1: Bugfix: The Tcl queue extension did not recognize when new 
   resources were added from a Tcl event handler.
   
-  Changed in 1.1: Bugfix: Interrupted system calls are automatically 
   restarted.
   Enhancement: It is now possible to use Equeue together with Tcl's event 
   queue implementation.
   
-  Changed in 1.0: Many bugfixes. Added code examples. Added a manual. Added 
   support for multi-threaded applications.
   
-  Changed in 0.1.1: The installation of the package is findlib-based.
   

--------------------------

[1]   see http://www.ocaml-programming.de/packages/equeue-1.2.2.tar.gz

[2]   see http://www.ocaml-programming.de/packages/documentation/equeue/manual/

[3]   see mailto:gerd@gerd-stolpmann.de



