1
0
mirror of https://github.com/danog/parallel.git synced 2024-12-04 02:27:55 +01:00
Commit Graph

192 Commits

Author SHA1 Message Date
Niklas Keller
c1114188b6 Improve error messages 2018-03-21 13:49:52 +01:00
Aaron Piotrowski
ed3662172d
Added signal() and getPid() methods to Process 2018-03-14 18:51: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
Chris Wright
11a3e27db5 Escape script path in Process command (#38) 2018-01-31 18:31:36 +01:00
Syed Irfaq R. ⚡️
d2b9c03318 Fixes #35 (#36) 2018-01-22 16:15:09 -06:00
Aaron Piotrowski
abaa1609fd
Improve error message for invalid channel data 2018-01-22 16:12:55 -06:00
Niklas Keller
d16da4611e Fix usage inside PHARs 2018-01-22 15:03:31 +01:00
Aaron Piotrowski
0d40e6da98
Do not fclose socket or null thread ref; restore GC test 2017-12-27 12:36:28 -06:00
Aaron Piotrowski
0a474e18c0
Avoid cyclic references in threads 2017-12-26 23:16:44 -06: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
2a09f82f39
Add more process tests; exclude scripts from coverage 2017-12-13 13:56:11 -06:00
Aaron Piotrowski
d89c9e3dee
Catch serialization failure in process runner 2017-12-13 10:31:43 -06:00
Aaron Piotrowski
cb87b1cd9a
Use default sizes as default values 2017-12-12 21:59:38 -06:00
Aaron Piotrowski
91314f13f6
Shorten message from uncaught context exceptions 2017-12-12 21:08:59 -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
4d99a9d968
spawn → run 2017-12-10 17:01:10 -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
cb15de11ff
Catch StreamExceptions thrown when reading
try/catch should have been around call to read().
2017-12-10 13:54:11 -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
11a115670c
Only modify binary path if null
Also remove setting process options, as this is done in amphp/process anyway.
2017-12-06 16:01:11 -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
Aaron Piotrowski
51b6421933
Simplify checking environment class name 2017-11-30 23:58:41 -06:00
Aaron Piotrowski
3f7f21875d
Exit if constructing channel fails. 2017-11-29 23:02:36 -06:00
Aaron Piotrowski
7bb49256be
Fix missed use statement 2017-11-29 17:58:00 -06:00
Aaron Piotrowski
d0a3001c6a
Fix a couple mistakes… 2017-11-29 15:07:00 -06:00
Aaron Piotrowski
599cbb8a82
Anonymous class → defined class 2017-11-29 15:05:15 -06:00
Aaron Piotrowski
3aff92fec4
Consolodate process and thread contexts into Context namespace 2017-11-29 15:01:32 -06:00
Aaron Piotrowski
33a5b89ff7
Refactor Parcels 2017-11-29 14:40:07 -06:00
Aaron Piotrowski
996654920d
Update for export of mutex and semaphore to amphp/sync 2017-11-29 14:12:28 -06:00
Aaron Piotrowski
48bbf75097
Locate autoloader file in thread 2017-11-25 09:04:00 -06:00
Aaron Piotrowski
e700395ac5 Better fix for #27
Assertions would crash the worker, this will return as a failed task.
2017-11-22 21:38:11 -06:00
Aaron Piotrowski
689de9a28b
Assert autoload of Task class did not fail
Fixes #27.
2017-11-22 20:42:56 -06:00
Aaron Piotrowski
dbd3403087
Quiet style fixer 2017-11-10 11:35:47 -06:00
Aaron Piotrowski
26e826a05f
Add code to exception message, addresses #21
Code is no longer passed to exception constructor in parent context.
2017-11-10 11:32:15 -06:00
Aaron Piotrowski
0e71b18197
Faster freeing of task memory 2017-11-10 10:32:01 -06:00
Aaron Piotrowski
aaee76e3da
Rename Threading namespace to Thread 2017-11-10 10:00:04 -06:00
Aaron Piotrowski
f48066eb1b
Drop Fork along with Process and Strand interfaces
Forking is just too dangerous for virtually no gain over Process. Context now extends Sync\Channel.
2017-11-10 09:59:23 -06:00
Aaron Piotrowski
0ef74413af
Fix updating TTL; add more environment tests 2017-07-29 10:29:16 -05:00
Aaron Piotrowski
84b611e780
Move ExitResult classes out of Internal namespace 2017-07-28 17:34:24 -05:00
Aaron Piotrowski
0df4fa9cce
Add internal annotations 2017-07-27 23:49:20 -05:00
Aaron Piotrowski
3d5e1c6e6f
Refactor BasicEnvironment
Remove \Countable, add tests.
2017-07-27 23:47:36 -05:00
Aaron Piotrowski
cab8bbe8f6
Add ability to set Environment class name 2017-07-27 23:31:43 -05:00
Aaron Piotrowski
faf1555b9c
Move TaskRunner out of Internal namespace 2017-07-26 23:32:19 -05:00
Pieter Hordijk
8e6def047e Fixes the constant used
`\PHP_BINARY` will never give phpdbg, but always the full path to the
binary. You meant to use `\PHP_SAPI` here too just like on the previous
line.
2017-07-26 20:16:47 +02:00
Aaron Piotrowski
6ed128f3e7
Quite style fixer 2017-07-20 23:58:13 -05:00
Aaron Piotrowski
affe305e93
Use null for new scope 2017-07-20 23:36:53 -05:00
Aaron Piotrowski
1a6896b047
Exit thread immediately if parent context died while starting 2017-07-20 23:36:28 -05:00
Aaron Piotrowski
f716981c95
Exit thread immediately if killed while loading autoloader 2017-07-19 00:14:16 -05:00
Aaron Piotrowski
58ce0df037
Remove unnecessary try/catch
execute() will never throw, so no reason to wrap in try/catch.
2017-07-19 00:08:55 -05:00
Aaron Piotrowski
bba0610ede
Use call() to execute context function 2017-07-19 00:07:04 -05:00
Aaron Piotrowski
d4a2c311ca
Do not start global pool until used 2017-07-17 22:54:14 -05:00
Aaron Piotrowski
ff146bc8ba
Reduce default pool size 2017-07-17 22:53:19 -05:00
Aaron Piotrowski
c22d2838c7
Read more data if channel prefix is invalid 2017-06-28 23:59:24 -05:00
Niklas Keller
77de09894f Allow mixed for exception codes, because PDO 2017-06-28 12:41:59 +02:00
Niklas Keller
6b2f5cd3fa Bypass shell on Windows to fix paths with spaces 2017-06-24 00:29:34 +02:00
Niklas Keller
acd8b59d53 Apply escapeshellarg on PHP_BINARY so it works on paths with spaces
This is especially important on Windows with PHP being in C:\Program Files\...
2017-06-24 00:12:12 +02:00
Niklas Keller
8ecfed57bf Unreference stderr reading, so it doesn't keep the loop running 2017-06-23 16:44:17 +02:00
Niklas Keller
8c726c67b6 Remove -- when invoking the PHP CLI binary 2017-06-21 18:20:06 +02:00
Niklas Keller
84cd33a503 Pipe stderr of worker processes to the parents stderr 2017-06-21 18:20:06 +02:00
Niklas Keller
ba4e101314 Use argseparator (--) also for PHP CLI 2017-06-21 17:30:26 +02:00
Niklas Keller
d3ccd57d23 Never display errors, log them instead 2017-06-21 15:30:52 +02:00
Aaron Piotrowski
29a1d1bb8c
Maintain task order for fast-finishing/blocking tasks 2017-06-19 22:14:19 -05:00
Aaron Piotrowski
20bb51e926 Improve worker error reporting 2017-06-17 23:57:12 -05:00
Niklas Keller
4546ef8b1d Skip cli_set_process_title inside phpdbg 2017-06-17 20:46:22 +02:00
Niklas Keller
39664d42d0 Fix binary when running via phpdbg 2017-06-17 19:27:16 +02:00
Niklas Keller
a6bca0f085 Fix code style 2017-06-17 18:31:35 +02:00
Aaron Piotrowski
820b6897ed Update for process changes 2017-06-15 23:46:15 -05:00
Aaron Piotrowski
f9be01adb5 Use parser package; refactor ChannelledSocket 2017-06-07 23:33:13 -05:00
Aaron Piotrowski
5a36a60651 Delay call to close 2017-06-01 11:15:03 -05:00
Aaron Piotrowski
0b16820ca8 Check for exit when sending as well 2017-05-28 00:09:13 -05:00
Aaron Piotrowski
a31f3491ca Only check for exit when receiving, fixes #9 2017-05-27 00:43:09 -05:00
Aaron Piotrowski
149dbe4ba3 Use Amp\call to run tasks
Handles generator to coroutine convertion and React promises automatically.
2017-05-19 17:13:42 -05:00
Niklas Keller
2e9a29ae1c Apply Amp's code style 2017-05-18 09:51:31 +02:00
Aaron Piotrowski
1f637cfc6f Map deferreds to promises 2017-05-17 23:28:18 -05:00
Aaron Piotrowski
c7294da60d Reorganize exception classes and add TaskError
TaskError is thrown if the exception thrown in the worker was an instance of Error.
2017-05-17 23:13:29 -05:00
Aaron Piotrowski
cc6f785fa9 Pause → Delayed 2017-05-10 23:45:02 -05:00
Niklas Keller
b148a20257 Update to latest Amp and byte-stream changes 2017-05-10 09:05:35 +02:00
Aaron Piotrowski
c9be318356 Create new event loop in fork 2017-04-24 09:51:24 -05:00
Aaron Piotrowski
19d8cf79a1 Update ChannelledStream
Refactor of ReadableStream means ChannelledStream needed to change significantly.
2017-04-16 10:12:42 -05:00
Aaron Piotrowski
8a18a7a7b8 Require both params in constructor 2017-03-25 01:19:46 -05:00
Aaron Piotrowski
99c876f522 Update for stream changes 2017-03-23 19:25:35 -05:00
Aaron Piotrowski
9bf978ad01 when() → onResolve() 2017-03-21 18:45:23 -05:00
Aaron Piotrowski
34d07fcd34 Update for process change 2017-03-16 22:26:05 -05:00
Aaron Piotrowski
0236fc5336 Kill worker forks
Forking for workers is just not a good idea… it's too likely to be used irresponsibly.
2017-03-16 17:33:30 -05:00
Aaron Piotrowski
7f592265d0 Do not auto close sockets in child 2017-03-16 17:11:49 -05:00
Aaron Piotrowski
6a8eb2130e Update for async-interop merge and other Amp changes 2017-03-16 17:03:59 -05:00
Aaron Piotrowski
9cc70c1f86 Periodically check for dead thread 2017-03-09 16:55:11 -06:00