1
0
mirror of https://github.com/danog/parallel.git synced 2024-12-13 09:37:26 +01:00
Commit Graph

95 Commits

Author SHA1 Message Date
Aaron Piotrowski
a9a5807798
Continue using pthreads for workers
Will consider removing in the future, but a deprecation period should come before.
2019-02-18 09:41:56 -06:00
Aaron Piotrowski
f2e5224856
Unite Process and Parallel context interfaces
Allows scripts to be written for either context.
2019-02-17 23:50:41 -06:00
Aaron Piotrowski
ecaf0a854b
Add support for krakjoe/parallel 2019-02-14 00:34:45 -06:00
Aaron Piotrowski
6b6e38cf70
Define constants in contexts for easy identification 2019-02-13 14:15:16 -06:00
Aaron Piotrowski
9236ade19f
Capture previous exceptions of exceptions thrown from Task::run() 2019-01-25 14:29:32 -06:00
Aaron Piotrowski
beafcdb140
Close channel in process when ended
Also restored destructor to DefaultPool to immediately kill workers instead of waiting until the end of the process.
2019-01-09 09:28:31 -06:00
Aaron Piotrowski
2ac081575e
Wait for pending task in shutdown 2018-12-30 12:48:54 -06:00
Aaron Piotrowski
d7697ebd69
Gracefully shutdown workers on process exit 2018-12-30 12:38:17 -06:00
Aaron Piotrowski
1c9822a564
Fix #66 2018-12-19 18:47:43 -06:00
Niklas Keller
912047f2ec Add CallableTask and enqueueCallable 2018-11-04 10:17:19 -06:00
Aaron Piotrowski
4c3c93e46a
Fix DefaultPool::shutdown()
Forgot to update this to match Worker::shutdown() behavior.
2018-10-27 11:19:01 -05:00
Aaron Piotrowski
eff56fb849
Unreference process I/O streams 2018-10-27 11:14:31 -05:00
Aaron Piotrowski
d783e13fa4
Store exit status promise
Return this promise from subsequent calls to shutdown().
2018-10-27 09:59:10 -05:00
Aaron Piotrowski
7961e6a13a
AbstractWorker → TaskWorker 2018-10-26 18:29:45 -05:00
Aaron Piotrowski
1c1d22b7f6
Pool::get() → Pool::getWorker()
Also renamed Worker\get() to Worker\pool()->getWorker().
2018-10-25 09:54:40 -05:00
Aaron Piotrowski
9098d26b56
Declare return type on exists() 2018-10-25 09:38:38 -05:00
Aaron Piotrowski
3f2e6d7f07
Drop custom exception constructors 2018-10-24 22:49:01 -05:00
Aaron Piotrowski
fe293c09bb
Improve process communication error handling 2018-10-23 22:14:51 -05:00
Aaron Piotrowski
14def89bff
Improve error messages when unserializable data is used 2018-10-23 22:10:12 -05:00
Aaron Piotrowski
fe4df13ab9
Forward stdout and stderr from worker to parent
Restores previous behavior of process contexts when used in a worker.
2018-10-23 10:11:16 -05:00
Aaron Piotrowski
f1b0a59b86
Final all the things! 2018-10-21 10:54:46 -05:00
Aaron Piotrowski
83cd550895
Remove method kept for BC in DefaultPool
Mark DefaultPool::pull() as private and entire class as final.
2018-10-21 10:42:55 -05:00
Aaron Piotrowski
0d85b5a149
supported() → isSupported() 2018-10-21 10:34:32 -05:00
Aaron Piotrowski
562ae6f68d
Remove AbstractWorker::cancel() and report worker as running on start 2018-10-08 12:27:18 -05:00
Aaron Piotrowski
5987d844c8
Kill pool if still running on destruct 2018-10-07 10:16:49 -05:00
Aaron Piotrowski
526916d13c
Ignore multiple shutdown() calls; remove cancel() param 2018-10-07 09:56:09 -05:00
Aaron Piotrowski
b654463339
Fix code style 2018-10-07 09:50:45 -05:00
Aaron Piotrowski
cb5ea736d4
Improve process IPC
Processes now use a shared server socket instead of stdin and stdout for IPC.
2018-10-07 09:31:35 -05:00
Aaron Piotrowski
ca051a0aa6
Fail queued tasks after shutdown is invoked 2018-10-07 09:23:42 -05:00
Aaron Piotrowski
d81b6fccd2
Fix circular reference in BasicEnvironment (Fixes #56) 2018-10-07 09:23:13 -05:00
Markus Staab
dbdc7895ac Fixed typo (#42) 2018-02-27 23:26:51 +01:00
Markus Staab
1d6330ffc7 Fixed typo (#41) 2018-02-27 20:02:22 +01:00
Aaron Piotrowski
feb54951cc Simplify worker implementation
Most of the complexity in AbstractWorker was to support out-of-order task execution.
2017-12-26 10:02:43 -06:00
Niklas Keller
cfd33799d7 Avoid cyclic references, fixes amphp/parallel-functions#5 2017-12-26 10:02:43 -06:00
Aaron Piotrowski
21b1a29748
Shorten task failure messages 2017-12-13 23:03:42 -06:00
Aaron Piotrowski
b9a8108540
Add ability to specify environment class name when creating factory 2017-12-13 22:18:12 -06:00
Aaron Piotrowski
fc4c2a07b7
Shorten job IDs 2017-12-13 21:28:08 -06:00
Aaron Piotrowski
f4411805d6
Fail task with SerializationException; cancel worker if sending otherwise fails 2017-12-13 20:56:28 -06:00
Aaron Piotrowski
9e7d1e0801
Throw if sending task fails 2017-12-13 16:29:44 -06:00
Aaron Piotrowski
312aecf1ff
Remove Worker::start()
The context can automatically be started when a job is enqueued.
2017-12-13 14:14:31 -06:00
Aaron Piotrowski
cb87b1cd9a
Use default sizes as default values 2017-12-12 21:59:38 -06:00
Aaron Piotrowski
8decdceb5d
Reorder Process constructor params
Shifted $binary to the end as it should rarely be needed.
2017-12-12 21:06:11 -06:00
Aaron Piotrowski
852f580915
Remove $this magic from Thread callback
Channel is now passed as the first argument.
2017-12-10 16:53:51 -06:00
Aaron Piotrowski
4d4841f449
Refactor Process to make writing child processes simple 2017-12-10 16:39:49 -06:00
Aaron Piotrowski
8c8c3123cb
Fix ternary associativity 2017-12-08 17:36:19 -06:00
Aaron Piotrowski
4b8cb791c2
Start global pool on creation 2017-12-08 10:31:28 -06:00
Aaron Piotrowski
4426686e54
Reorganize 2017-12-07 21:26:55 -06:00
Aaron Piotrowski
1adb63d906
Remove do*() private methods
Replaced with Amp\call().
2017-12-07 20:49:44 -06:00
Aaron Piotrowski
6be72c6754
Run tasks in-order
Tasks on Windows must be run in-order because STDIO pipes are blocking. IPC be refactored to use sockets in the future if desired.
2017-12-06 15:59:28 -06:00
Aaron Piotrowski
e3b1cfd0cf
Allow custom binary path or locate binary 2017-12-05 18:21:39 -06:00