1
0
mirror of https://github.com/danog/parallel.git synced 2024-11-30 04:39:01 +01:00
Commit Graph

231 Commits

Author SHA1 Message Date
Aaron Piotrowski
3df3f7c80e
Serialize exception trace arguments in child processes and threads 2020-02-10 12:33:55 -06:00
Aaron Piotrowski
4ed05f6aac
Improve error handling when sending and receiving 2020-02-10 12:29:27 -06:00
Aaron Piotrowski
72dd3a495f
Deprecate classes using ext-pthreads
See https://github.com/krakjoe/pthreads/issues/929
2020-02-04 13:42:47 -06:00
Jáchym Toušek
e9326379f3
Fix Environment (#92) 2020-02-04 10:10:02 -06:00
Aaron Piotrowski
2b418eb71d
Improve error message for non-autoloadable callables
Fixes #83.
2019-08-27 18:28:31 -05:00
Aaron Piotrowski
17b6b6272f
Add void types were able 2019-08-27 18:14:56 -05:00
c73c6d0a77
Cleanup temporary files (#82)
Modified by @trowski.
2019-08-27 10:04:40 -05:00
Niklas Keller
53aa422eaf Remove unused import 2019-05-11 19:13:47 +02:00
Aaron Piotrowski
d70a82d04c
Remove static binding from require closure 2019-05-11 09:48:24 -05:00
Aaron Piotrowski
1acd54e848
Use closure within parallel runner 2019-05-01 13:30:57 -05:00
Aaron Piotrowski
2d02d964f4
Use Events::setBlocking() added to parallel extension 2019-05-01 12:08:52 -05:00
Aaron Piotrowski
7303b8dcf3
Fix exiting parallel context 2019-04-30 14:47:37 -05:00
Aaron Piotrowski
3ec7f33142
Fix namespace 2019-04-29 10:34:57 -05:00
Aaron Piotrowski
66ca530f0d
Move static parallel extension properties into internal class 2019-04-29 10:19:32 -05:00
Aaron Piotrowski
d6e7fed763
Explicit casts for event name 2019-04-24 10:42:45 -05:00
Aaron Piotrowski
108b6434ef
Allow time when process channel closes unexpectedly 2019-04-24 10:17:54 -05:00
Aaron Piotrowski
b6acc4f386
Update for latest parallel extension changes 2019-04-24 10:05:42 -05:00
Aaron Piotrowski
740696275c
Add a couple tests and ignore some blocks only executed in threads 2019-03-08 13:37:52 -06:00
Aaron Piotrowski
c1f6b62799
Check if watcher has already been cancelled
This seems to only happen in 7.1 for some reason… will perhaps need to dig further into why.
2019-03-08 11:26:48 -06:00
Aaron Piotrowski
2191d1145b
Cancel watcher if no threads remain 2019-03-08 11:20:47 -06:00
Aaron Piotrowski
3cce945d93
Note method to retreive stacktrace in exception messages 2019-03-02 09:19:00 -06:00
Aaron Piotrowski
7c8f936618
Autoloading → Bootstrap
Calling the file a boostrap makes more sense as more than defining an autoloader can be done in the file.
2019-02-22 16:10:30 -06:00
Aaron Piotrowski
7c8756c3a5
Add custom autoloader option for workers
Fixes #55 and #71.
2019-02-20 17:39:39 -06:00
Aaron Piotrowski
738f50afe7
Define AMP_CONTEXT_ID in contexts
Uses PID in processes or a sequential ID for threads.
2019-02-20 17:31:22 -06:00
Aaron Piotrowski
1150428281
Better handling of unserialization errors
Still fails even if E_NOTICE errors are not being reported.
2019-02-20 17:22:48 -06:00
Aaron Piotrowski
a0575b4930
Fix handling of invalid connections
Channel::receive() can throw ChannelException and SerializationException, so just catch everything here.
2019-02-18 18:44:30 -06:00
Aaron Piotrowski
a9e22e9ef8
Add getId() method; don't dup futures array 2019-02-18 18:43:11 -06:00
Aaron Piotrowski
b8b73cdea3
Use Future::select() 2019-02-18 13:05:43 -06:00
Aaron Piotrowski
36d3a3d963
Periodically check Future to see if thread crashed 2019-02-18 11:48:13 -06:00
Aaron Piotrowski
7fca17d7ef
Explicitly close channel when thread finishes 2019-02-18 10:32:16 -06:00
Aaron Piotrowski
8e19da949f
Remove unused imports 2019-02-18 09:43:14 -06:00
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
f919371aee
Don't swallow SynchronizationError in ContextException 2019-02-18 09:38:42 -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
c55f34c551
Update for krakjoe/parallel interrupt branch
Dumped the signal socket.
2019-02-15 18:25:29 -06:00
Aaron Piotrowski
638a1bb638
Implement thread killing
Will not interrupt blocking calls such as sleep, but in practice this shouldn't be much of a problem.
2019-02-14 18:12:51 -06:00
Aaron Piotrowski
23669b9572
Add reference/unreference methods to ChannelledSocket 2019-02-14 18:09:13 -06:00
Aaron Piotrowski
c60fc63cb6
Add timer in parallel context for kill breakpoint 2019-02-14 01:10:40 -06:00
Aaron Piotrowski
2d35051391
Update for krakjoe/parallel changes 2019-02-14 00:56:27 -06:00
Aaron Piotrowski
410c88e859
Serialize function arguments
Maybe this is a horrible idea, but we serialize everything else, so why not?
2019-02-14 00:34:45 -06:00
Aaron Piotrowski
ecaf0a854b
Add support for krakjoe/parallel 2019-02-14 00:34:45 -06:00
Aaron Piotrowski
c77843fa77
Catch parse error and provide better error message 2019-02-13 16:36:45 -06:00
Aaron Piotrowski
6b6e38cf70
Define constants in contexts for easy identification 2019-02-13 14:15:16 -06:00
Aaron Piotrowski
1ee8e202ed
Apply the same treatment to context exceptions
Sends info about previous exceptions thrown in the context to the parent.
2019-01-25 17:53:19 -06:00
Aaron Piotrowski
9236ade19f
Capture previous exceptions of exceptions thrown from Task::run() 2019-01-25 14:29:32 -06:00
Aaron Piotrowski
80c07011d6
Fix failing Process::join()
If the process is killed while joining, an exception was thrown from Process::kill().
2019-01-09 10:25:30 -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
dc036dfa33
Use Promise\wait() in process-runner.php 2019-01-04 16:58:05 -06:00
Aaron Piotrowski
65d71c3526
Check for resolution of promise in process-runner.php 2019-01-04 16:46:53 -06:00
Aaron Piotrowski
f391d3549a
Improve error message when parent has exited 2018-12-30 13:08:38 -06:00