- New upstream release 1.876
- Allow percentage above 100% for max_workers in MCE
- MCE::Child update
- Improved _ordhash
- Renamed JOINED to REAPED in code for better clarity
- Specify a percentage for max_workers
- Added t/05_mce_child_max_workers.t
- New upstream release 1.872
- Added open to required dependencies
- Set default encodings on standard filehandles in tests using UTF-8
- Bumped minimal Perl version to 5.8.1
- Bumped MCE version to 1.872 to align with MCE::Shared
- The MCE project is completed
- New upstream release 1.868
- Bug fix for UTF-8 issues during inter-process communication:
- This update required undoing optimizations specific to scalar args
- Essentially, IPC involves serialization for everything going forward
- Install Sereal::Encoder and Sereal::Decoder for better performance in
Perl 5.8.8+
- MCE options flush_stdout, flush_stderr, and flush_file now default to
enabled for the MCE->print, MCE->printf, and MCE->say output routines
- Improved MCE::Child with threads-like detach capability (see POD)
- Improved IPC in MCE::Queue with permanent fast-like dequeue including
dequeue_nb; going forward, the fast and barrier options are silently
ignored if specified (i.e. no-op)
- Improved IPC performance on Linux
- Completed threads-like detach capability in MCE::Child
- Resolved MCE::Channel failing when calling dequeue multiple times on an
ended channel
- MCE->say, MCE->print, and MCE->printf now return 1
- New upstream release 1.865
- Bug fix for two-way IPC stalling on Windows in MCE::Channel::Threads:
see https://www.perlmonks.org/?node_id=11110612
- Remove the check for MSWin32 in MCE::Channel::Mutex; MCE::Channel since
the 1st release silently defaults to MCE::Channel::Threads on Windows
- Small tweak to MCE::Signal
- New upstream release 1.864
- Bug fix to MCE::Signal - Shared manager not exiting, introduced in 1.863
- Use monotonic clock if available in MCE->yield and MCE::Child->yield
- New upstream release 1.863
- On Cygwin, silently use Mutex in MCE::Channel when Threads is specified for
better performance
- New defer capability in MCE::Signal, which applies to MCE::Shared 1.863;
see POD section labled "DEFER SIGNAL" in MCE::Signal
- Reverted $child->exit back to sending the SIGQUIT signal in MCE::Child now
that MCE::Shared::Server 1.863 defers signal during IPC
- Improved reliability for spawning MCE and MCE::Child inside threads
including nested parallelization, made possible using a global lock
$MCE::_GMUTEX
- Updated signal handling in mce-examples/framebuffer on GitHub
- New upstream release 1.862
- The edge cases regarding signal handling have finally been resolved for
MCE::Child; see mce-examples/framebuffer on GitHub
- New upstream release 1.860
- Signal-handling update release
- Localized input and output record separators in MCE::Channel
- IPC safety in MCE::Child during SIGINT and SIGTERM
- Method $child->exit in MCE::Child now sends the SIGINT signal for extra
reliability with MCE::Shared (previously SIGQUIT)
- New upstream release 1.848
- Improved IO::All::{ File, Pipe, STDIO } output via MCE->print($io, ...),
printf, and say; this resolves a bug introduced in 1.845 when using
App::Cmd::Tester to capture output
- New upstream release 1.847
- Obsolete RedHat MCE-1.840-Sereal-deps.patch file; this patch file is no
longer needed and finally resolved with this release
- PDL random numbers now unique between threads:
see https://www.perlmonks.org/?node_id=1214439
- Replaced "PF_UNIX" with "AF_UNIX" in MCE::Util
- New upstream release 1.845
- Croak if is_joinable, is_running, or join is called by a non-managed
process in MCE::Child; added LIMITATION section to the documentation
- Improved is_joinable, is_running, list_joinable, and list_running in
MCE::Child
- Added example (consumer requests item) to MCE::Channel documentation
- Support the task_end option regardless of whether user_tasks is specified
- Support IO::All::{ File, Pipe, STDIO } for input data including output
via MCE->print($io, ...), printf, and say
- Support gather ⇒ MCE::Candy::out_iter_fh($io) using MCE::Candy
- New upstream release 1.844
- Resolved MCE stalling when specifying max_retries with init_relay, ditto
for loop_timeout with init_relay on UNIX platforms
- Enhanced loop_timeout to handle workers dieing uncontrollably from any
user_tasks (i.e. task_id ≥ 0); previously, only task_id == 0
- Improved IPC on the Windows platform for edge case when a worker is
awaiting input while the manager process is restarting a worker
- MCE, MCE::Child workers exit immediately upon receiving a SIGSEGV signal;
this safeguards IPC from stalling inside the manager process
- Enhanced the _wait_one private function in MCE::Child
- Removed Prima from the list for auto-enabling the posix_exit option; Prima
(since 1.52) is parallel safe during global cleanup
- Reached 100% Pod coverage
- New upstream release 1.843
- Updated results in MCE::Child (Parallel::ForkManager-like demonstration)
- Completed missing interrupt signal-safety for the non-blocking methods in
MCE::Channel::Mutex and MCE::Channel::Threads
- New upstream release 1.841
- Disabled t/04_channel_threads testing on Unix platforms for Perl less than
5.10.1; basically, the MCE::Channel::Threads implementation is not supported
on older Perls unless the OS vendor applied upstream patches (i.e. works on
RedHat/CentOS 5.x running Perl 5.8.x)
- Added LIMITATIONS section to MCE::Channel::Threads
- New upstream release 1.840
New Features
- Added MCE::Mutex::Channel2 providing two locks using a single channel; the
secondary lock is accessible by calling methods with the '2' suffix, e.g.
primary mutex ->lock, ->unlock; secondary mutex ->lock2, ->unlock2
- Added MCE::Channel providing queue-like and two-way communication
supporting threads and processes
- Added MCE::Child and compatibility with Perl 5.8; MCE::Child is based on
MCE::Hobo, but using MCE::Channel for data retrieval without involving a
shared-manager process
- Added MCE::Channel examples { channel1.pl and channel2.pl } using threads
and MCE::Child respectively
Enhancements
- IPC update; removed unnecessary overhead including private methods _sysseek
and _syswrite from MCE::Util (no longer needed)
- Improved MCE->do, now callable by workers and the manager process
- Updated MCE::{ Flow, Grep, Loop, Map, Step, and Stream } documentation on
passing an array reference versus a list for deeply input data
- Updated and re-organized the top-level MCE documentation, particularly
improved clarity for the 'MCE Models' section
- Removed MANIFEST.SKIP
- Update MCE::Channel POD documentation
- New upstream release 1.838
- IPC update, raising reliability across multiple platforms
- Improved hack for the Windows platform for nested MCE sessions
- Added _sysread, _sysseek, _syswrite, and _nonblocking to MCE::Util
- Added barrier option to MCE::Queue: allows one to disable
- New upstream release 1.837
- Seeds the Math::Random::MT::Auto generator automatically when present for
non-threads, similarly to Math::Random and Math::Prime::Util, to
avoid child processes sharing the same seed value as the parent and
each other; the new seed is computed using the current seed
- New upstream release 1.834
- Improved Queue await and dequeue performance on the Windows platform
- Added chameneos-redux parallel demonstrations on Github:
https://github.com/marioroy/mce-examples/tree/master/chameneos
- Rebase Sereal-deps patch
- New upstream release 1.832
- Added LWP::UserAgent to list for enabling posix_exit
- Improved number-sequence generation for big integers
- Improved wantarray support in MCE::Mutex synchronize
- Removed limit check on chunk_size option
- New upstream release 1.830
Bug Fixes
- Fixed MCE and MCE::Relay stalling when setting the input record separator
(see http://www.perlmonks.org/?node_id=1196701)
- Fixed bug with dequeue_nb in MCE::Queue (GH#8)
- Fixed signal handler (GH#9)
Enhancements
- Added Coro and Win32::GUI to list for enabling posix_exit
- Added support for Haiku to get_ncpu in MCE::Util
- Allow gathering to a shared array in MCE::Candy
- Improved CPU count on the AIX platform in MCE::Util
- Improved signal handling, including nested parallel-sessions
- Improved running MCE::Hobo inside MCE workers
- Improved running MCE with PDL
- Refactored logic for MCE->do, bi-directional callback feature
- Preserve lexical type for numbers during IPC: MCE->do and MCE::Queue
- No longer loads threads on the Windows platform in MCE::Signal; this
enables MCE::Hobo 1.827 to spin faster, including lesser memory
consumption (threads isn't required to run MCE::Hobo)
- Removed extra white-space from POD documentation
- Validated MCE on SmartOS
- Rebase Sereal-deps patch
- New upstream release 1.828
- Do not enable barrier mode for Queue on the Windows platform
- Fixed MCE::Mutex::Flock, tmp_file missing script name in path
- Added Curses and Prima to list for enabling the posix_exit option
- Allow a hash as input_data: Core API, MCE::{ Flow, Loop, Step }
- Improved API documentation on MCE models with more synopsis
- Enhanced IPC and signal handling, reduced memory consumption
- Make tmp_dir on demand in MCE::Signal; ditto for sess_dir in MCE
- Load Fcntl, File::Path, Symbol on demand
- New upstream release 1.827
- Do not enable barrier mode in Queue if constructed inside a thread or by
MCE Model (e.g. Step, Stream); ditto for fast => 1 option
- Updated MCE not to croak when running Perl in taint mode via perl -T;
failing -T were MCE::Core::Input::{ Generator, Sequence }, MCE::Signal and
MCE::Util
- Added Denis Fateyev, Felipe Gasper and Paul Howarth to Credits