Wednesday 9th March 2016
Fedora Project
Updated perl-Apache-Session-Browseable to 1.2 in F-24 and Rawhide:
- Replace MD5 by SHA256
- Replace serialization by JSON
Local Packages
Updated perl-MCE to 1.700:
Bug Fixes
- Fixed race condition on Windows for non-threaded workers
Updated MCE Models to not fail when running inside an eval statement; this addresses CPAN RT#105557 and CPAN RT#105559
Added new MCE option loop_timeout to prevent the MCE Manager process from hanging perpetually; the manager process wrongly assumes a worker is still running when the worker died in an uncontrollable manner (CPAN RT#111780)
Enhancements
Perl 5.10.1 or later is required to run MCE 1.7; Perl < 5.10.1 lacks 'overloading.pm'
Added code in MCE::Grep's documentation for parsing huge files
Added support for running MCE with Perl under MobaXterm on Windows
MCE/examples and MCE/images are no longer included with the distribution: these are maintained separately at https://github.com/marioroy/mce-examples and https://github.com/marioroy/mce-assets respectively
MCE performs channel locking via a pipe or socket depending on platform; previously, locking was through file locking using flock - this resolves the slow locking performance on Cygwin
- Optimized signal handling including improved support on Windows
Reduced overhead during spawning and job submissions on Windows and Cygwin; this enables IPC to complete up to 20x faster, thus benefiting Monte-Carlo simulations; e.g. calling ->run(0) or ->process(...) repeatedly
The MCE::Flow and MCE::Step Models can take an anonymous array for specifying use_threads uniquely for sub-tasks
New Features
Added MCE::Hobo for running code asynchronously, which provides async/join functionality for processes similarly to async/join in threads; it includes ->is_joinable, ->is_running, ->join, ->kill, ->list, ->waitall, ->waitone, and other methods not mentioned here
Added MCE::Shared for sharing objects/data between threads/processes
Added MCE::Shared::{ Array, Handle, Hash, Ordhash, and Scalar }
Added MCE::Shared::{ Condvar, Minidb, Queue, and Sequence }
Added MCE::Shared::{ Server }
Added methods ->await, ->enq, and ->enqp to MCE::Step
Added method ->await to MCE::Queue
Added option max_retries => N for retrying a failed chunk from a worker dying while processing input data or sequence of numbers
Added option posix_exit => 1 to avoid END and destructor processing; this is necessary for running with Tk and child processes or with use_threads => 0
Seeds the Math::Random generator automatically when present for non-threads to avoid child processes sharing the same seed value as the parent and each other; the new seed is computed using the current seed, thus it's okay to set the seed at the application level for predictable results