Path: usenet.cis.ufl.edu!usenet.eel.ufl.edu!psgrain!nntp.teleport.com!usenet
From:
[email protected]
Newsgroups: comp.lang.perl.announce,comp.lang.perl.misc
Subject: EventServer version 2.3 now available
Followup-To: comp.lang.perl.misc
Date: 13 Feb 1996 13:29:30 GMT
Organization: GemStone Systems (Europe)
Lines: 63
Approved:
[email protected] (comp.lang.perl.announce)
Message-ID: <
[email protected]>
Reply-To:
[email protected]
NNTP-Posting-Host: julie.teleport.com
X-Disclaimer: The "Approved" header verifies header information for article transmission and does not imply approval of content.
Xref: usenet.cis.ufl.edu comp.lang.perl.announce:253 comp.lang.perl.misc:20396
Subject: EventServer version 2.3 now available
The latest version (2.3) of my EventServer module is now
available on CPAN. Look for file EventServer-2.3.tar.gz,
under author JACKS.
file: ["CPAN"/authors/id/JACKS/EventServer-2.3.tar.gz]
size: [27601 Bytes]
md5: [e5499b76bb61e1efa9b310a25f1ec7b2]
It is fully compatible with previous releases, but the
module is now called EventServer. There is a
Server::Server::EventDriven module included in the
distribution for backward compatibility which is just
an empty subclass of the EventServer - your code will
never know the difference if you prefer not to change
names.
Version 2.3 fixes a couple of minor bugs and adds the ability
to get the exit status of child processes from the callback.
EventServer general info:
The EventServer basically provides for functions to be triggered on any
of i/o, timed events, signals, or user-defined events. You can specify a
function to be called when input or output (or either) is possible on
any filehandle, or when a timeout occurs, or regularly at a set
interval, or when a signal is received, or when a child process
terminates, or when a user-defined event is added to the event queue.
In fact, any set of these simultaneously - all these events are checked
for continuously, and any one occurring triggers a function specified by
the user. Logic for recursive timeouts is including to allow
you to maintain a cooperative multithreading like process.
You can tell it to do something like the following:
every 10 seconds execute function 'a'
AND if there is input pending on filehandle B call function 'c'
AND if I receive signal C call function 'd'
AND in 3.4 seconds execute function 'e'
AND execute function 'f' when the child process 5555 dies
AND if event My_Event occurs, call function 'g'
AND if socket H gets a connection, call 'h'
AND ...
The event server is NOT specifically a network client or
server. It allows any type of i/o whether this is IP, UNIX socket,
plain file handle or whatever. It is designed to be able to handle
multiple domains. It allows you to easily have a process handling
multiple different things.
Full documentation with an example is included. HTML and man pages can
be generated using the pod2html and pod2man programs.
The EventServer is freeware, distributed under the same terms as Perl.
--
Jack Shirazi,
[email protected]
If you only have a hammer, you tend to see every problem as a nail.
-- Maslow