Revision history for Distributed-Process

0.20    Fri Jun  3 16:04:04 CEST 2005
        This release introduces another major change in the architecture. The
        client side no longer requires threads, which should enable clients to
        run on Windows machines. The server side workers each run their run()
        method in a separate thread, communicating with the master when needed
        through thread-safe queues. Clients can request that a method be run on
        the server, for instance to get parameters without having their own
        copy of a configuration file.

0.10    Thu Mar 24 10:35:40 CET 2005
        The architecture has changed a lot. Now the master worker's run()
        method will actually call the run() method of the RemoteWorkers,
        instead of only letting them broadcast their remote __methods.
        This has some implications: notably, one can no longer call a __method
        with a coderef as argument to let it run at the master worker level,
        since the real execution of run() is now done at the remote worker
        level.
        Remote methods (__methods) can now return values. The local worker will
        send the values to the server between the '/begin_return' and the
        '/end_return' tokens. This allows for the run() method to be more
        complexe than just running the __methods one after the other (e.g., it
        can test on the success or failure of one method and decide whether or
        not to run the others).

0.06    Sun Mar 20 00:09:47 CET 2005
        The D::P::Client sends a /worker command when it first connects. This
        allows for initialization tasks to take place on the server side.
        Notably, the D::P::Master now only considers itself 'ready to run' when
        all the clients have sent their /worker command, not only when they
        have connected.
        D::P::RemoteWorker now has the id() attribute from its Client
        couterpart (sent through the /worker command), and exposes an
        is_ready() method, which the D::P::Master queries to know whether it is
        'ready to run'.
        D::P::Master::workers() now returns the workers ordered by id().
        t/10-postpone.t should no longer block like it used to do sometimes.
        Other tests have been improved, notably t/11-time.t and t/09-session.t
        which sometimes failed for no obvious reason (was due to the
        unpredictable order of the D::P::Master::workers list).
        New INFO, WARN and ERROR message output function to complete the
        existing DEBUG.
        D::P::Master::run() now gets the results from D::P::Master::result()
        instead of getting them directly from its D::P::MasterWorker (this
        allows for overloading the way results are filtered).

0.05    Thu Mar 17 09:26:54 CET 2005
        Passing a coderef as argument to a __method now works also when calling
        it under time().
        The __methods are now redefined in the worker_class and also in its
        ancestor classes if any.

0.04    Tue Mar 15 10:48:48 CET 2005
        Added /reset command to flush the results between two run().
        Passing a coderef as argument to a __method called within run() will
        have it executed for each P::D::RemoteWorker, not only once by the
        P::D::MasterWorker.
        worker_args() are now passed on to the P::D::MasterWorker also.

0.03    Fri Mar 11 11:23:40 CET 2005
        Slightly better documentation. First public release (hey, this is very,
        very alpha code. Use with care!)

0.02    Tue Mar  8 15:31:44 CET 2005
        Added some documentation. Still no public release.

0.01    Sat Mar  5 01:50:11 CET 2005
        First version, not even publicly released.

