mirror of
https://github.com/danog/parallel.git
synced 2024-12-02 09:37:57 +01:00
2.6 KiB
2.6 KiB
Change log
All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.
Unreleased
Changed
- Updated to Icicle
0.9.x
packages.
Fixed
- Fixed bug where workers would begin throwing
BusyError
s when tasks are enqueued simultaneously or between multiple coroutines. - Fixed bugs with worker shutdowns conflicting with tasks already running.
- Fixed race conditions with pools occurring when enqueuing many tasks at once.
0.1.1 - 2015-11-13
Added
- Runtime support for forks and threads can now be checked with
Forking\Fork::enabled()
andThreading\Thread::enabled()
, respectively.
Changed
- Creating a fork will now throw an
UnsupportedError
if forking is not available. - Creating a thread will now throw an
UnsupportedError
if threading is not available. - Creating a
Sync\Parcel
will now throw anUnsupportedError
if theshmop
extension is not enabled. - Creating a
Sync\PosixSemaphore
will now throw anUnsupportedError
if thesysvmsg
extension is not enabled.
Fixed
- Fixed
Worker\Pool::__construct()
using$minSize
as the maximum pool size instead. Process\Process
no longer reports as running during process destruction after callingkill()
.
0.1.0 - 2015-10-28
Changed
Sync\ParcelInterface::wrap()
was removed in favor ofsynchronized()
, which now passes the value of the parcel to the callback function. The value returned by the callback will be wrapped.- Both channel interfaces were combined into
Sync\Channel
. ContextInterface
no longer extends a channel interfaceForking\Fork
andProcess\Process
now implementProcessInterface
.- Updated
icicleio/stream
to v0.4.1.
Fixed
- Fixed issue with error handler in
Sync\Channel
catching unrelated errors until the next tick.
0.1.0-beta1 - 2015-09-28
First release.
Added
- Creating and controlling multiple threads with
Threading\Thread
. - Creating and controlling multiple forked processes with
Forking\Fork
. - Workers and tasks, which can use either threading, forks, or a separate PHP process.
- A global worker pool that any tasks can be run in.
- Channels for sending messages across execution contexts.
- Parcels for storing values and objects in shared memory locations for use across contexts.
- Non-blocking mutexes and semaphores for protecting parcels.