Revision history for Forks-Super

0.52 2011-06-21

        Calling Forks::Super::LazyEval::bg_eval and bg_qx in list context
        doesn't work and is now disabled.
        Performance enhancement for fork with file-based IPC.
        Upgrade Sys-CpuAffinity bundle to v1.01
        Bug fix in timeout code that cause BSD to hang.
        Test fixes.

0.51 2011-04-18

        Include IPCPipeHandle.pm in manifest (D'oh)
        Overload <> operator for Forks::Super::Job to read from child stdout.
        $job->wait(0) now waits with timeout of 0, behaves differently
        from $job->wait().

0.50 2011-04-17

        Support  dir => $directory  option to start child in arbitrary dir.
        Introduced tied F::S::Tie::IPCPipeHandle class for testing/debugging
        use of pipes.
        Support  cpu_affinty => [@list]  syntax.
        Calling exit from a child sub is allowed again.

0.49 2011-04-01

        Bundle with Signals::XSIG v0.10 and drop Forks::Super::Sighandler.
        Setting $ENV{IPC_DIR}="undef" to disable file-based IPC now functions
        except on MSWin32.

0.48 2011-03-16

        Fix compile error in t/49.
        Refactoring of some large subroutines.

0.47 2011-03-15

        Fix for IPC clean up. Removed obsolete files and tests.
        Revised and reintroduced F::S::Tie::IPCFileHandle, IPCSocketHandle
        tied classes for debugging. Ultimately these classes will provide
        a common interface for file- and socket-based IPC.
        Attach job information to all filehandles opened in the module.

0.44 2011-02-12

        Upgrade Sys-CpuAffinity bundle to 0.99.
        Can use Proc::ProcessTable to clean up grandchild processes.
        Introduced reuse, dispose methods in Forks::Super::Job.
        Fix tied $fh call (deprecated in 5.13.8).
        Implement -MForks::Super=cleanse for picking up IPC litter off-line.

0.43 2010-11-15

        API change for bg_eval, bg_qx functions: return value is no longer a
        reference to a tied variable, but an overloaded object that retrieves
        its value only when it is used.
        Support timeout=> option to F::S::J::Ipc::read_stdXXX methods.

0.42 2010-10-17

        Implemented child_fh => block spec.
        Moved some functionality checks into %Forks::Super::SysInfo::CONFIG.
        Getting bg_eval, bg_qx to do the right thing in taint mode.
        Fixed IPC failures in non-English locales bug (cf. 
            www.cpantesters.org/cpan/report/8376777)
        Fix stdin,stdout,stderr options to fork to work better with socket IPC.

0.41 2010-10-10

        overload behavior from v0.34 more stable, enabled by default.
        Change name of $Forks::Super::FH_DIR to IPC_DIR and how it is set.
        META.yml changes so bundled distributions aren't indexed by CPAN.
        Check if sleep/alarm are compatible before some features can be used.

0.40 2010-09-28

        Implemented Forks::Super::Sighandler module and enhanced 
        signal handling. Use with Time::HiRes::setitimer where
        available to monitor the job queue instead of a separate process.

0.39 2010-09-16

        Support for YAML::Tiny, Data::Dumper in Forks::Super::LazyEval package.
        Enable default install for bundled Sys::CpuAffinity, Sys::CpuLoadX mods
        Some efforts toward backporting to 5.6.

0.38 2010-09-08

        Removed redundant Forks::Super::Util::Time() call.
        Testing changes, including checking taint compatibility.
        Unregister SIGCHLD handler at END{} to fix intermittent errors.

0.37 2010-08-27

        Support  block=>0|1  option to F::S::J::Ipc::read_stdXXX methods
        to force blocking/non-blocking IPC I/O.
        Natural language for timeout/expiration/delay/start_after options
        (requires DateTime::Format::NaturalLanguage).
        Support CONFIG{filehandles}=0 to only use sockets & pipes for IPC.

0.36 2010-08-23

Test case fixes only.

0.35 2010-08-12

        New IPC methods F::S::Job::write_stdin, read_stdout, read_stderr;
        refactored a lot of IPC code.
        wait, waitpid can return overloaded F::S::Job objects like fork().
        Documented $Forks::Super::Wait::WAIT_ACTION_ON_SUSPENDED_JOBS.
        Implemented suspend callback.

0.34 2010-08-10

        Return value from fork() can be an overloaded Forks::Super::Job
        object that behaves like its pid in number context.

0.33 2010-07-29

        Added open2 and open3 convenience methods.
        Support for JSON v1 in Forks::Super::LazyEval package.
        If $Forks::Super::SUPPORT_LIST_CONTEXT is non-zero, then
        fork() in list context returns Forks::Super::Job object to parent.

0.32 2010-05-18

        New system dependent Forks::Super::SysInfo package.
        Changes to Ipc.pm for robustness and to ease testing/debugging.
        Put README.txt file into temporary IPC directories.
        Improved cleanup of queue monitor.

0.31 2010-05-04

        Extend socket IPC to cmd/exec-style forks (except MSWin32).
        Making use of tie behavior to more Forks::Super::Queue variables.

0.30 2010-04-25

        Implemented suspend/resume functionality (for Windows, too).
        Implemented kill/kill_all functions to send signals to jobs.
        Bundles Sys::CpuAffinity (released) and Sys::CpuLoadX (unreleased)
        modules, and enables $Forks::Super::MAX_LOAD parameter and
        max_load option to fork().

0.29 2010-04-13

Pipes for IPC. system-limits.PL obtains pipe, socket capacity.

0.28 2010-04-05

JSON support for bg_eval call. Improved IPC file cleanup in MSWin32.

0.27 2010-04-03

Makefile changes, doc fixes

0.26 2010-03-18

        Built OS::Win32 and OS::Linux for os-specific system functions.
        OS::Linux includes first "conditional Inline::C code".
        Broke up some long running unit tests into small pieces.

0.25 2010-03-10

        $Forks::Super::LAST_JOB,$Forks::Super::LAST_JOB_ID capture job state in
        bg_eval/bg_qx calls. Special handling for bg_eval/bg_qx jobs in waitpid
        Timeout in MSWin32 will now (maybe) kill the grandchildren too.

0.24 2010-03-05

Fix cleanup of IPC files.

0.23 2010-02-20

Implemented timeouts on wait,waitpid,waitall calls.

0.22 2010-02-19

Added bg_qx function

0.21 2010-02-19

        Decomposed large source file into manageable chunks. 
        Added stdin, stdout, stderr options to fork call.

0.16 2010-02-16

test fixes

0.15 2010-02-13

Further improvements using setpgrp with timeout option, cleanup.

0.14 2010-02-11

Bug/test fix for setpgrp issue on Linux.

0.13 2010-02-10

Added exec and callback options. Added bg_eval function.

0.12 2009-12-31

        Added name attribute. waitpid, dependencies, and job lookup by job 
        name. Fixed named subroutine. Impl tied scalars for $ON_BUSY,
        $QUEUE_INTERRUPT. On child timeout, all child subprocesses are killed.

0.11 2009-12-18

Fixes for some tests.

0.10 2009-12-08

        Added sockets for IPC ; Changed API for accessing child 
        STDxxx handles.

0.09 2009-12-06

Require 5.7.3 for "safe" signals -- see perlipc ; refined some tests

0.08 2009-12-03

        job-level debugging ; recommended modules to README and META.yml ;
        os_priority implemented in MSWin32

0.07 2009-12-01

implement cpu_affinity option for Cygwin, Win32, Linux

0.06 2009-11-25

        pod fixes; adding module config to import method (though this isn't
        documented yet); v5.6 compatibility changes, tested on MSWin32 
        (AS) v5.6.1; may not pass all CPAN testers, but I expect improvement

0.05 2009-11-19

API Change Forks::Super::Job::_get to Forks::Super::Job::get

0.04 2009-11-14

Alpha release.