Reverted the change made in MCE-1.410. That degraded slurp IO on
large files. This restores slurp IO performance in MCE.Corrected an if statement towards the end of the shutdown method.
The delay was occurring always when it was meant only if MCE was
launched from inside a non-main thread.Addressed a race condition with barrier synchronization under the
Cygwin environment. Was not able to reproduce this with other OS's.
This takes barrier synchronization work to 100%. Delay statements
for Cygwin were removed around barrier synchronization.Optimized writes to sockets. Arguments passed to print statements
are concatenated as one big string. Removed local $/ = $LF when
reading from the queue socket. It's not required there since using
read and known size. The foreach.pl example (very communication
intensive) can now do 20000 in 1 second on my Macbook Pro. Updated
benchmark results inside foreach.pl, forchunk.pl, and forseq.pl.MAX_WORKERS, CHUNK_SIZE, TMP_DIR, FREEZE and THAW can be specified
when loading the module. FREEZE and THAW allows one to choose an
alternative serialization module if preferred for your project.use Sereal qw(encode_sereal decode_sereal);
use MCE FREEZE => &encode_sereal, THAW => &decode_sereal;Passing EXPORT_CONST => 1 will export 3 constants: SELF, CHUNK, CID
The "my ($self, $chunk_ref, $chunkid) = @" line is not necessary.
$[SELF], $[CHUNK], $[CID] refers to $[0], $[1], $[2].The MCE::Util module was created. It contains the get_ncpu function.
This is largely borrowed from Test::Smoke::Util.pm. MCE supports
'auto' when specifying max_workers. Read doc for other use case.max_workers => 'auto'; ## Same as MCE::Util::get_ncpu()
Re-factored code in preparation for the upcoming 1.5 release. The
1.5 release will use just 3 socket pairs versus 4. I did not want
to include that change in this release. Therefore, I decided to
take the upstream bug fixes and apply them to the 1.4 base.
Re-factored documentation by making use of the full 78 character
width per line.
- Updated the main README file under the top level dir.