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.