1
0
mirror of https://github.com/danog/amp.git synced 2024-12-12 09:29:45 +01:00
Commit Graph

98 Commits

Author SHA1 Message Date
Aaron Piotrowski
4c8cd6b7b1
Revert DriverControl
Simplifies fiber running the loop. Control complexity seems unnecessary now since the loop should not need to be started by the user.
2020-10-02 22:26:10 -05:00
Aaron Piotrowski
492442db2d
Check run count on dispatch 2020-10-02 13:55:00 -05:00
Aaron Piotrowski
7e03928faf
Drop CallableMaker 2020-09-26 22:31:08 -05:00
Aaron Piotrowski
9f68bd4046
Remove Driver::run() and stop()
Added Driver::isRunning().

Driver now must be started and stopped through an instance of DriverControl.
2020-09-26 12:50:30 -05:00
Aaron Piotrowski
9a2ebe777a
Merge branch 'kelunik-nested-wait' into v3 2020-09-26 11:40:38 -05:00
Aaron Piotrowski
d48e6bd5d2
Add more class and return types
More PHP 7.1 to 8 types added.
2020-09-24 22:17:13 -05:00
Aaron Piotrowski
5f6db028ab
Initial fiber support 2020-09-24 12:53:32 -05:00
Niklas Keller
05483cdbef
Enforce timer interval as minimum time to execution (#319)
Co-authored-by: Aaron Piotrowski <aaron@trowski.com>
2020-07-14 21:45:35 +02:00
Aaron Piotrowski
0b802a501e
Mark repeat watcher as disabled then re-enable when executed (#325)
Fixes #324.
2020-07-13 22:29:16 +02:00
Aaron Piotrowski
a04eda397b
Fix potential warning on shutdown in UvDriver
Like everything shutdown related, this depends on destruction order and appears to only happen on 7.4+.
2020-07-13 10:12:25 -05:00
Niklas Keller
8ee469be90 Improve type definition for Amp\call 2020-04-19 15:38:36 +02:00
Aaron Piotrowski
0eb8ef438e
Make DriverControl an interface 2020-04-16 11:08:31 -05:00
Aaron Piotrowski
ab409bb254
Rename to DriverControl 2020-04-16 10:59:02 -05:00
Aaron Piotrowski
702aee45d3
Use delegate loop for Promise\wait() 2020-04-16 10:17:37 -05:00
Aaron Piotrowski
a062c3ed26
Update docs 2020-04-16 10:01:53 -05:00
Niklas Keller
5b4d019753 Allow tested calls to Amp\Promise\wait 2020-04-15 22:47:43 +02:00
Niklas Keller
c34b679142 Remove psalm-suppress for fixed psalm bugs 2020-03-29 14:24:09 +02:00
Niklas Keller
caea418fe8 Increase psalm error level to level 2 2020-03-28 22:20:44 +01:00
Niklas Keller
885cd68828 Increase psalm error level to level 3 2020-03-28 21:55:44 +01:00
Niklas Keller
0e04422dcb Increase psalm error level to level 4 2020-03-28 20:27:42 +01:00
Niklas Keller
603ce25299 Fix invalid types in doc comments
We're on the way to psalm error level 4, but there are still some remaining issues.
2020-03-28 14:32:53 +01:00
Niklas Keller
a75164b66b Add psalm static analysis on level 6
This also fixes mixed types in some cases.
2020-03-28 12:23:46 +01:00
Aaron Piotrowski
2ac3b550c4
Fix array access on null last error 2020-02-10 12:10:57 -06:00
Aaron Piotrowski
193efe7e96
Return null, not -1 2019-11-11 13:23:14 -06:00
Aaron Piotrowski
dd4d6be677
Remove unneeded method
Fix big-O lies in docblock.
2019-10-31 15:41:07 -05:00
Aaron Piotrowski
710f84ccc8
Improve timer cancellation in NativeDriver 2019-10-30 09:41:46 -05:00
Niklas Keller
64e7d10108 Fix cancellation trace recording in TracingDriver 2019-10-26 16:20:56 +02:00
Niklas Keller
5a294f1381 Fix TracingDriver, add TracingDriverTest 2019-10-01 21:39:23 +02:00
Niklas Keller
1657284608
Add TracingDriver for debugging (#283) 2019-10-01 21:01:44 +02:00
Aaron Piotrowski
ef83723a79
Fix signal handler in NativeDriver when used with pcntl_async_signals
Fixes #264.
2019-02-25 18:05:47 -06:00
Aaron Piotrowski
c6f8425473
Use a custom priority queue for timers
Fixes #220 by allowing immediate removal of the watcher from the queue. Insert and extract is O(log(n)), peeking is O(1), and removal is O(n).
2019-01-24 13:09:11 -06:00
Aaron Piotrowski
b6fc1e12d4
Move nowUpdateNeeded setting to getTimeout()
Essentially the same fix as @bwoebi committed, just placed at the source of the problem.
2019-01-21 10:27:49 -06:00
Bob Weinand
c3afc5e977
Fix #256 - Ensure nowUpdateNeeded is set to true after a blocking wait in NativeDriver
So that expired timeouts also indeed do trigger immediately instead of in the next tick.
2019-01-21 16:41:30 +01:00
Bob Weinand
7075ef7d74 Fix #251 - 100% CPU usage in NativeDriver
Also use better bounds for timer - it must not execute before, but may execute a little later (on my system it were up to 7 ms actually)
2018-12-11 11:31:37 +01:00
Niklas Keller
5622edba37 Implement monotonic timer using PHP 7.3's hrtime() 2018-12-10 20:07:11 +01:00
Aaron Piotrowski
5889f4e0fd Randomize loop now offset 2018-11-26 21:59:15 +01:00
Aaron Piotrowski
77a12c823b Add Loop::now() 2018-11-26 21:59:15 +01:00
Aaron Piotrowski
c4faf1f347
Update loop time in dispatch() instead of activate()
Fixes #243.
2018-10-14 22:30:31 -05:00
Niklas Keller
fa3fe1d20b Apply PSR-2 2018-06-18 20:00:01 +02:00
Aaron Piotrowski
242d78a6ec Fix 212 and ignore unreference on invalid watchers (#216)
Fix #212 & Ignore unreference on invalid watchers
2018-04-12 09:46:52 +02:00
Aaron Piotrowski
9b2fb76442
Free loop handle when destructing EventDriver
Relates to #177.
2018-04-08 13:20:27 -05:00
Aaron Piotrowski
3b12391529
Add note about OR'ing with 4 2018-04-08 13:10:46 -05:00
Aaron Piotrowski
8c8a6da0c2
Invoke watcher callback if events is 0 or 4
4 is UV_DISCONNECT
2018-04-06 14:22:39 -05:00
Aaron Piotrowski
22eb14d736
Avoid odd ev event nulling behavior 2018-03-20 09:54:22 -05:00
Niklas Keller
3f08f615d8 Fix segfault with ev on shutdown, fixes amphp/parallel#3 2017-12-19 18:27:18 +01:00
Niklas Keller
a247757535 Ignore only warnings for interrupted syscalls in NativeDriver
Fixes #160.
2017-09-19 18:53:39 +02:00
Niklas Keller
7a04dc5c21 Fix EventDriver warnings and bugs
Fixes #163, #159.
2017-09-17 12:18:04 +02:00
Niklas Keller
8f5fb52525 Shut up php-cs-fixer
See https://github.com/FriendsOfPHP/PHP-CS-Fixer/issues/2948.
2017-07-29 23:43:24 +02:00
Bob Weinand
5e93318d85 Fix issue with the loop not terminating with only unreferenced watchers 2017-07-09 09:28:32 +02:00
Aaron Piotrowski
cd252e4165 Invoke callback on all non-zero statuses 2017-05-24 00:09:04 -05:00