Commit Graph

955 Commits

Author SHA1 Message Date
Aaron Piotrowski
a538c04b86 Unused import
Some checks failed
Continuous Integration / PHP 8.3 on Windows (push) Has been cancelled
Continuous Integration / PHP 8.3 on macOS (push) Has been cancelled
Continuous Integration / PHP 8.1 (push) Has been cancelled
Continuous Integration / PHP 8.2 (push) Has been cancelled
Continuous Integration / PHP 8.3 (push) Has been cancelled
Continuous Integration / PHP 8.4 (push) Has been cancelled
Continuous Integration / PHP 8.2 with ext-parallel (push) Has been cancelled
Continuous Integration / PHP 8.3 with ext-parallel (push) Has been cancelled
Continuous Integration / PHP 8.4 with ext-parallel (push) Has been cancelled
2025-04-20 10:35:50 -05:00
Aaron Piotrowski
141c62935e Look for StreamSelectLoop 2025-04-20 10:14:15 -05:00
Aaron Piotrowski
e8207c4799 Fix copy/pasta mistake 2025-04-20 10:14:15 -05:00
Daniil Gentili
ec3d242b7c Fork context (#214)
Some checks failed
Continuous Integration / PHP 8.3 on Windows (push) Has been cancelled
Continuous Integration / PHP 8.3 on macOS (push) Has been cancelled
Continuous Integration / PHP 8.1 (push) Has been cancelled
Continuous Integration / PHP 8.2 (push) Has been cancelled
Continuous Integration / PHP 8.3 (push) Has been cancelled
Continuous Integration / PHP 8.4 (push) Has been cancelled
Continuous Integration / PHP 8.2 with ext-parallel (push) Has been cancelled
Continuous Integration / PHP 8.3 with ext-parallel (push) Has been cancelled
Continuous Integration / PHP 8.4 with ext-parallel (push) Has been cancelled
* Skip another test

* cs-fix
2025-03-21 18:33:51 -05:00
Aaron Piotrowski
e7333d0cd2 Merge branch '2.x' into fork-context
Some checks failed
Continuous Integration / PHP 8.3 on Windows (push) Has been cancelled
Continuous Integration / PHP 8.3 on macOS (push) Has been cancelled
Continuous Integration / PHP 8.1 (push) Has been cancelled
Continuous Integration / PHP 8.2 (push) Has been cancelled
Continuous Integration / PHP 8.3 (push) Has been cancelled
Continuous Integration / PHP 8.4 (push) Has been cancelled
Continuous Integration / PHP 8.2 with ext-parallel (push) Has been cancelled
Continuous Integration / PHP 8.3 with ext-parallel (push) Has been cancelled
Continuous Integration / PHP 8.4 with ext-parallel (push) Has been cancelled
2025-03-16 13:23:48 -05:00
Aaron Piotrowski
6bcfa22d88 Test on PHP 8.4
Some checks failed
Continuous Integration / PHP 8.3 on Windows (push) Has been cancelled
Continuous Integration / PHP 8.3 on macOS (push) Has been cancelled
Continuous Integration / PHP 8.1 (push) Has been cancelled
Continuous Integration / PHP 8.2 (push) Has been cancelled
Continuous Integration / PHP 8.3 (push) Has been cancelled
Continuous Integration / PHP 8.4 (push) Has been cancelled
Continuous Integration / PHP 8.2 with ext-parallel (push) Has been cancelled
Continuous Integration / PHP 8.3 with ext-parallel (push) Has been cancelled
Continuous Integration / PHP 8.4 with ext-parallel (push) Has been cancelled
2025-03-16 13:21:35 -05:00
Aaron Piotrowski
84d7acf4c1 Update CI action versions 2025-03-16 13:21:08 -05:00
Daniil Gentili
981895dd9e Fixup 2025-03-10 13:05:23 +01:00
Daniil Gentili
ffedc39004 Fixup tests 2025-03-07 17:39:50 +01:00
Aaron Piotrowski
03a5cddb84 Fix
Some checks failed
Continuous Integration / PHP 8.3 on Windows (push) Has been cancelled
Continuous Integration / PHP 8.3 on macOS (push) Has been cancelled
Continuous Integration / PHP 8.1 (push) Has been cancelled
Continuous Integration / PHP 8.2 (push) Has been cancelled
Continuous Integration / PHP 8.3 (push) Has been cancelled
Continuous Integration / PHP 8.2 with ext-parallel (push) Has been cancelled
Continuous Integration / PHP 8.3 with ext-parallel (push) Has been cancelled
2025-03-01 14:50:55 -06:00
Aaron Piotrowski
31d8b70286 Updates 2025-03-01 14:48:49 -06:00
Aaron Piotrowski
8ac48fac0d Add ForkContext 2025-03-01 09:36:05 -06:00
Mikhail
9678e00380 Add .github and psalm.xml to export-ignore (#210)
Some checks failed
Continuous Integration / PHP 8.3 on Windows (push) Has been cancelled
Continuous Integration / PHP 8.3 on macOS (push) Has been cancelled
Continuous Integration / PHP 8.1 (push) Has been cancelled
Continuous Integration / PHP 8.2 (push) Has been cancelled
Continuous Integration / PHP 8.3 (push) Has been cancelled
Continuous Integration / PHP 8.2 with ext-parallel (push) Has been cancelled
Continuous Integration / PHP 8.3 with ext-parallel (push) Has been cancelled
2025-02-23 09:04:24 +01:00
Aaron Piotrowski
a922ec764d Avoid PHP object allocation issue
Some checks failed
Continuous Integration / PHP 8.3 on Windows (push) Has been cancelled
Continuous Integration / PHP 8.3 on macOS (push) Has been cancelled
Continuous Integration / PHP 8.1 (push) Has been cancelled
Continuous Integration / PHP 8.2 (push) Has been cancelled
Continuous Integration / PHP 8.3 (push) Has been cancelled
Continuous Integration / PHP 8.2 with ext-parallel (push) Has been cancelled
Continuous Integration / PHP 8.3 with ext-parallel (push) Has been cancelled
PooledWorker::__destruct() is run even if $this->selectWorker() never returns because the object is allocated prior to the constructor call.
2025-02-08 09:02:53 -06:00
Bob Weinand
5113111de0 Prevent silencing ExitFailure in ProcessContext->join() (#207)
Some checks failed
Continuous Integration / PHP ${{ matrix.php-version }} ${{ matrix.job-description }} (false, on Windows, windows-latest, nts, 8.3) (push) Has been cancelled
Continuous Integration / PHP ${{ matrix.php-version }} ${{ matrix.job-description }} (false, on macOS, macos-latest, nts, 8.3) (push) Has been cancelled
Continuous Integration / PHP ${{ matrix.php-version }} ${{ matrix.job-description }} (false, ubuntu-latest, nts, 8.1) (push) Has been cancelled
Continuous Integration / PHP ${{ matrix.php-version }} ${{ matrix.job-description }} (false, ubuntu-latest, nts, 8.2) (push) Has been cancelled
Continuous Integration / PHP ${{ matrix.php-version }} ${{ matrix.job-description }} (false, ubuntu-latest, nts, 8.3) (push) Has been cancelled
Continuous Integration / PHP ${{ matrix.php-version }} ${{ matrix.job-description }} (none, true, with ext-parallel, ubuntu-latest, parallel, ts, 8.2, none, none) (push) Has been cancelled
Continuous Integration / PHP ${{ matrix.php-version }} ${{ matrix.job-description }} (none, true, with ext-parallel, ubuntu-latest, parallel, ts, 8.3, none, none) (push) Has been cancelled
v2.3.1
2024-12-20 19:56:09 -06:00
Aaron Piotrowski
9777db1460 Add LimitedWorkerPool (#205)
Some checks failed
Continuous Integration / PHP ${{ matrix.php-version }} ${{ matrix.job-description }} (false, on Windows, windows-latest, nts, 8.3) (push) Has been cancelled
Continuous Integration / PHP ${{ matrix.php-version }} ${{ matrix.job-description }} (false, on macOS, macos-latest, nts, 8.3) (push) Has been cancelled
Continuous Integration / PHP ${{ matrix.php-version }} ${{ matrix.job-description }} (false, ubuntu-latest, nts, 8.1) (push) Has been cancelled
Continuous Integration / PHP ${{ matrix.php-version }} ${{ matrix.job-description }} (false, ubuntu-latest, nts, 8.2) (push) Has been cancelled
Continuous Integration / PHP ${{ matrix.php-version }} ${{ matrix.job-description }} (false, ubuntu-latest, nts, 8.3) (push) Has been cancelled
Continuous Integration / PHP ${{ matrix.php-version }} ${{ matrix.job-description }} (none, true, with ext-parallel, ubuntu-latest, parallel, ts, 8.2, none, none) (push) Has been cancelled
Continuous Integration / PHP ${{ matrix.php-version }} ${{ matrix.job-description }} (none, true, with ext-parallel, ubuntu-latest, parallel, ts, 8.3, none, none) (push) Has been cancelled
v2.3.0
2024-09-14 21:16:14 +02:00
Aaron Piotrowski
feed27e9a2 Add getLimit() method
Some checks failed
Continuous Integration / PHP ${{ matrix.php-version }} ${{ matrix.job-description }} (false, on Windows, windows-latest, nts, 8.3) (push) Has been cancelled
Continuous Integration / PHP ${{ matrix.php-version }} ${{ matrix.job-description }} (false, on macOS, macos-latest, nts, 8.3) (push) Has been cancelled
Continuous Integration / PHP ${{ matrix.php-version }} ${{ matrix.job-description }} (false, ubuntu-latest, nts, 8.1) (push) Has been cancelled
Continuous Integration / PHP ${{ matrix.php-version }} ${{ matrix.job-description }} (false, ubuntu-latest, nts, 8.2) (push) Has been cancelled
Continuous Integration / PHP ${{ matrix.php-version }} ${{ matrix.job-description }} (false, ubuntu-latest, nts, 8.3) (push) Has been cancelled
Continuous Integration / PHP ${{ matrix.php-version }} ${{ matrix.job-description }} (none, true, with ext-parallel, ubuntu-latest, parallel, ts, 8.2, none, none) (push) Has been cancelled
Continuous Integration / PHP ${{ matrix.php-version }} ${{ matrix.job-description }} (none, true, with ext-parallel, ubuntu-latest, parallel, ts, 8.3, none, none) (push) Has been cancelled
2024-09-01 22:47:07 -05:00
Aaron Piotrowski
7f8ca5472d Add DelegatingWorkerPool
Some checks are pending
Continuous Integration / PHP ${{ matrix.php-version }} ${{ matrix.job-description }} (false, on Windows, windows-latest, nts, 8.3) (push) Waiting to run
Continuous Integration / PHP ${{ matrix.php-version }} ${{ matrix.job-description }} (false, on macOS, macos-latest, nts, 8.3) (push) Waiting to run
Continuous Integration / PHP ${{ matrix.php-version }} ${{ matrix.job-description }} (false, ubuntu-latest, nts, 8.1) (push) Waiting to run
Continuous Integration / PHP ${{ matrix.php-version }} ${{ matrix.job-description }} (false, ubuntu-latest, nts, 8.2) (push) Waiting to run
Continuous Integration / PHP ${{ matrix.php-version }} ${{ matrix.job-description }} (false, ubuntu-latest, nts, 8.3) (push) Waiting to run
Continuous Integration / PHP ${{ matrix.php-version }} ${{ matrix.job-description }} (none, true, with ext-parallel, ubuntu-latest, parallel, ts, 8.2, none, none) (push) Waiting to run
Continuous Integration / PHP ${{ matrix.php-version }} ${{ matrix.job-description }} (none, true, with ext-parallel, ubuntu-latest, parallel, ts, 8.3, none, none) (push) Waiting to run
2024-09-01 09:40:09 -05:00
Aaron Piotrowski
b4f39786c8 Remove default xdebug options, only set those which are defined
Some checks failed
Continuous Integration / PHP ${{ matrix.php-version }} ${{ matrix.job-description }} (false, on Windows, windows-latest, nts, 8.3) (push) Has been cancelled
Continuous Integration / PHP ${{ matrix.php-version }} ${{ matrix.job-description }} (false, on macOS, macos-latest, nts, 8.3) (push) Has been cancelled
Continuous Integration / PHP ${{ matrix.php-version }} ${{ matrix.job-description }} (false, ubuntu-latest, nts, 8.1) (push) Has been cancelled
Continuous Integration / PHP ${{ matrix.php-version }} ${{ matrix.job-description }} (false, ubuntu-latest, nts, 8.2) (push) Has been cancelled
Continuous Integration / PHP ${{ matrix.php-version }} ${{ matrix.job-description }} (false, ubuntu-latest, nts, 8.3) (push) Has been cancelled
Continuous Integration / PHP ${{ matrix.php-version }} ${{ matrix.job-description }} (none, true, with ext-parallel, ubuntu-latest, parallel, ts, 8.2, none, none) (push) Has been cancelled
Continuous Integration / PHP ${{ matrix.php-version }} ${{ matrix.job-description }} (none, true, with ext-parallel, ubuntu-latest, parallel, ts, 8.3, none, none) (push) Has been cancelled
2024-07-23 14:35:39 -05:00
Aaron Piotrowski
73d293f1fc Use error handler instead of error suppression
Fixes #200.
v2.2.9
2024-03-24 13:27:44 -05:00
Aaron Piotrowski
051211ab31 Fix simultaneous accept cancel and server close 2024-03-19 20:02:23 -05:00
Niklas Keller
efd71b342b Fix composer requirements v2.2.8 2024-03-19 17:09:34 +01:00
Niklas Keller
0cb870ad59 Fix psalm error 2024-03-19 17:05:04 +01:00
Niklas Keller
9aed188b24 Fix SocketIpcHub::accept if already cancelled
Relates to #199.
2024-03-19 16:47:53 +01:00
Niklas Keller
9403846875 Fix race condition on concurrent IPC connects
We write the key to the child [1] before registering it to be received, which is inside `accept` [2].

If the child connects fast enough, this will result in a race condition. The race condition will only happen if there are multiple concurrent accepts, because we start to accept only after registering the key [3]. With concurrent pending connects, we might already be in the accept loop.

Fixes #199.

[1] ffda869c33/src/Context/ProcessContext.php (L159)
[2] ffda869c33/src/Ipc/SocketIpcHub.php (L172)
[3] ffda869c33/src/Ipc/SocketIpcHub.php (L168)
2024-03-19 16:20:05 +01:00
Aaron Piotrowski
ffda869c33 Better cancelled execution creation v2.2.7 2024-03-16 11:15:46 -05:00
Aaron Piotrowski
a00eb2d014 Update example styles 2024-01-28 12:39:24 -06:00
Aaron Piotrowski
af91ae75d8 Mark template type as covariant 2024-01-28 12:37:42 -06:00
Aaron Piotrowski
16cc5d886c Update for new Psalm version 2024-01-28 12:37:42 -06:00
Aaron Piotrowski
8102980497 Fix method reference 2024-01-28 12:37:42 -06:00
Aaron Piotrowski
0dfd136a17 Increase timeout before cancellation
Avoids race condition with parent cancellation check not submitting task to worker.
2024-01-28 12:37:41 -06:00
Aaron Piotrowski
e705d00643 Do not submit cancelled tasks
Fixes #198.
2024-01-28 12:37:41 -06:00
thgs
024369c526 Small improvements on examples (#194) 2024-01-07 12:50:32 -06:00
Aaron Piotrowski
5aeaad2029 Fix referenced watcher hanging event loop if worker is not joined
Fixes amphp/file#75.
v2.2.6
2024-01-07 12:12:13 -06:00
Aaron Piotrowski
7b53bad38e Add IPC docs v2.2.5 2023-12-27 12:53:31 -06:00
Aaron Piotrowski
f013263aff Thread worker tests 2023-12-27 12:33:25 -06:00
Aaron Piotrowski
8984c838c2 Mark test as not performing assertions instead of skipped 2023-12-27 12:31:09 -06:00
Aaron Piotrowski
48653bc140 Better pool shutdown 2023-12-27 12:28:11 -06:00
Aaron Piotrowski
470293d4b4 Adjust some tests for Windows CI 2023-12-27 12:24:54 -06:00
Aaron Piotrowski
0a0ab6bc61 ext-parallel is buggy on 8.1 2023-12-27 11:30:48 -06:00
Aaron Piotrowski
241ad1b3d4 Update Psalm and suppress false-positive 2023-12-27 11:21:24 -06:00
Aaron Piotrowski
42c53f01b2 Skip exit test in thread 2023-12-27 11:17:31 -06:00
Aaron Piotrowski
bedf7ed2ce Unreference std streams 2023-12-27 11:16:30 -06:00
thgs
8b8f33a742 Add previous exception message when fail to start process (#192) v2.2.4 2023-11-28 22:21:30 -06:00
Aaron Piotrowski
340f1a9204 Fix removing temp IPC sock
Fixes #183.
2023-11-26 10:08:57 -06:00
Aaron Piotrowski
223c47cfa5 Fix accept after cancelling prior accept v2.2.3 2023-11-24 18:18:59 -06:00
Aaron Piotrowski
f54bb40906 Clarify autoload requirement in example v2.2.2 2023-08-30 12:43:42 -05:00
Aaron Piotrowski
24e2b7797b Ignore UnsupportedPropertyReferenceUsage from Psalm 2023-08-30 12:43:25 -05:00
Aaron Piotrowski
443df35cd9 Pipe stdio to parent
Provides parity with the behavior of ext-parallel and avoids potential hangs if stdio buffers fill.
2023-08-30 12:41:39 -05:00
Aaron Piotrowski
ba11031b86 Increase timeout for CI v2.2.1 2023-05-21 22:33:27 -05:00