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
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
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
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
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
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
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
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
Pieter Hordijk
354e64db09
Fixed typo in exception message
...
When the process cannot be started it tells me "Staring the process failed".
You can stare at a process all you want, but it should be "Starting".
2018-11-08 14:29:35 -06:00
Aaron Piotrowski
596f41886b
Return PID from Process::start()
2018-11-04 11:34:18 -06:00
Aaron Piotrowski
87d728ea35
Fix argument order
...
Oddly PhpStorm didn't highlight this as wrong.
2018-10-24 22:35:27 -05:00
Aaron Piotrowski
fe293c09bb
Improve process communication error handling
2018-10-23 22:14:51 -05:00
Aaron Piotrowski
3c0baa4e43
Remove catch of ChannelException
...
This catch block may hide errors that the user makes. If the parent died, another exception will be generated and caught below when trying to send the ExitFailure object.
2018-10-23 21:28:24 -05:00
Aaron Piotrowski
fd6c531d87
Add eof check on STDIN
2018-10-23 21:26:26 -05:00
Aaron Piotrowski
f1b0a59b86
Final all the things!
2018-10-21 10:54:46 -05:00
Aaron Piotrowski
0d85b5a149
supported() → isSupported()
2018-10-21 10:34:32 -05:00
Aaron Piotrowski
e72a50dc8d
Upgrade to latest amphp/process release
...
STDOUT and STDERR of a child process is no longer automatically piped to STDOUT and STDERR of the parent. Instead these streams are available on Context\Process for the user to determine how they should be handled.
2018-10-21 10:25:29 -05:00
Aaron Piotrowski
cb2aa9c59c
Use 127.0.0.1 instead of localhost
...
Avoids DNS lookup issues on Windows.
2018-10-21 10:09:28 -05:00
Aaron Piotrowski
8d60fdbb64
Trigger error in process runner before exiting
2018-10-21 10:03:26 -05:00