Along with our project (liquidsoap), we (the savonet team) have developped an
advanced scheduler that we needed for our software. It is now available as a
seperate module, and we hope it could be usefull for some of you.
The basics of this scheduler is to implement a wrapper around Unix.select in
order to be able to wait for events on a socket and/or a given delay and
execute a task when one of the waited events occured.
We also wrote an asynchronous interface as well as a simple I/O interface, in
order to read and write to sockets, or submit an asychronous task to a
scheduler.
Several queues can be run against the same scheduler, each one living in a
different thread. Also, each task has a priority, which can of your favorite
type, and each queue decides if it wants to process a task according to a
predicate passed at its initialisation.
This scheduler can be very usefull to write simple servers, as well as to
develop a multi-thread task processing system. Two simple telnet and http
examples are provided in the source.
You can find more informations on the module there:
http://www.rastageeks.org/duppy.html
In particular, the documentation is available there:
http://www.rastageeks.org/ocaml-duppy/Duppy.html
You can also download the module there:
https://sourceforge.net/project/showfiles.php?group_id=89802&package_id=266393
Romain
--
The bars could not hold me;
Force could not control me now.
They try to keep me down, yeah!
But Jah put I around.
(...)
Let me tell you this -
I'm a duppy conqueror !
_______________________________________________
Caml-list mailing list. Subscription management:
http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list
Archives: http://caml.inria.fr
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
Bug reports: http://caml.inria.fr/bin/caml-bugs
Gerd
------------------------------------------------------------
Gerd Stolpmann * Viktoriastr. 45 * 64293 Darmstadt * Germany
ge...@gerd-stolpmann.de http://www.gerd-stolpmann.de
Phone: +49-6151-153855 Fax: +49-6151-997714
------------------------------------------------------------
Well, it is very similar, clearly.
The difference I can see for now, is that Duppy is more simple and oriented
toward socket events and delays. In particular, it is not clear to me wether
equeue can accept delayed tasks.
Of course, we didn't meant to deprecate your work, but perhaps it can be
usefull for different taks..
Romain
--
Seven miles of Black Star Liners coming in the harbour.
Yeah, seven miles of Black Star Liners coming in the harbour.
I can see them coming.
I can see I dreams running.
I can hear the Elders saying,
These are the days for which we've been praying.
My question was only out of curiosity. I am sometimes interested why
people reinvent wheels - and if it is only for a different color.
Equeue supports delays. It doesn't support priorities, however. Also,
multi-threading integration seems to be different.
Gerd
--
------------------------------------------------------------
Gerd Stolpmann * Viktoriastr. 45 * 64293 Darmstadt * Germany
ge...@gerd-stolpmann.de http://www.gerd-stolpmann.de
Phone: +49-6151-153855 Fax: +49-6151-997714
------------------------------------------------------------