Masiukevich Maksim
0fd6b8c157
Fix phpdoc types for call / asyncCall ( #260 )
...
Incorrect types were indicated, due to which static analysis led to false positives.
2019-02-05 18:32:32 +01: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
Sascha-Oliver Prolic
96c2eeaa1f
Add Promise\wrap ( #234 )
2018-11-26 19:36:46 +01:00
Sascha-Oliver Prolic
4a98cc4fde
Add timeoutWithDefault function ( #245 )
2018-11-25 17:56:42 +01:00
Niklas Keller
b73e03bfe2
Rename Iterator\collect to Iterator\toArray
2018-11-25 17:09:50 +01:00
Niklas Keller
22a8332261
Add Iterator\collect
2018-11-25 17:09:50 +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
Niklas Keller
5dac863f37
Don't record stack traces in case of AMP_DEBUG not being set ( #218 )
...
Fixes #217 .
2018-04-26 00:32:31 +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
Niklas Keller
c632e40b03
Clarify promise interface
...
Fixes #209 .
2018-03-25 17:27:41 +02:00
Aaron Piotrowski
22eb14d736
Avoid odd ev event nulling behavior
2018-03-20 09:54:22 -05:00
Aaron Piotrowski
992d6e9b39
Return named classes
...
Better for var_dump and stack traces.
2018-01-27 19:47:46 +01:00
Aaron Piotrowski
4bbe141718
Hide resolution methods
2018-01-27 19:47:46 +01:00
Niklas Keller
3f08f615d8
Fix segfault with ev on shutdown, fixes amphp/parallel#3
2017-12-19 18:27:18 +01:00
Aaron Piotrowski
be3ae73a45
Drop multiple definitions of Deferred and Emitter
...
Closes #144 , #157 , #173 , #189 , #190 .
2017-12-16 00:00:56 -06:00
Niklas Keller
0cb033084a
Fix formatStacktrace notice
2017-12-07 18:23:19 +01:00
Niklas Keller
98cfaa63ca
Remove unused variables
2017-12-05 08:48:56 +01:00
Aaron Piotrowski
4ef9af6dff
Check against "false"
2017-12-02 11:15:06 -06:00
Aaron Piotrowski
e3b0b9a0c7
Update backtrace formatting
2017-12-02 11:14:49 -06:00
Aaron Piotrowski
745a95ba67
Define AMP_DEBUG through environment
2017-12-02 10:23:12 -06:00
Markus Staab
34bf671f13
Automatically add \ for buitins ( #186 )
...
Fixes #185 .
2017-11-29 13:36:50 +01:00
Bob Weinand
7837d8ce08
Fix #172 - Preserve Promise order within combinator functions
2017-10-10 15:37:31 +02:00
Niklas Keller
df15b07fb3
Replace driver with dummy driver and collect cycles on loop switch
...
This solves https://github.com/amphp/dns/issues/66 . Circular references might otherwise be collected later and __destruct operations using the Loop accessor might cancel watchers on the wrong loop.
2017-10-08 12:52:30 +02: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
Aaron Piotrowski
05491a57c9
Optimize fast-finishing/failing coroutines
2017-08-04 22:50:19 -05: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
5f3e21a4a4
Add TimeoutCancellationToken
2017-06-13 12:41:47 -05:00
Niklas Keller
c7fcbd96dc
Make NullCancellationToken final
2017-06-09 17:22:21 +02:00
Aaron Piotrowski
9757b39fab
Use call in LazyPromise and make class final
2017-06-09 10:18:06 -05:00
Aaron Piotrowski
f83d36dfe5
Update promise docblocks
2017-06-06 12:57:03 -05:00
Aaron Piotrowski
7a05fe1316
Use static function for rethrow
2017-06-05 00:21:45 -05:00
Aaron Piotrowski
6ec8757698
Use references instead of function invocation
2017-06-05 00:19:34 -05:00
Aaron Piotrowski
b354b04779
Fix code style
2017-06-05 00:10:13 -05:00
Aaron Piotrowski
02eb0340f1
Use anonymous classes in Deferred and Emitter
2017-06-04 23:59:23 -05:00
Niklas Keller
332869987b
Implement NullCancellationToken
2017-05-24 10:34:54 +02:00
Aaron Piotrowski
cd252e4165
Invoke callback on all non-zero statuses
2017-05-24 00:09:04 -05:00
Niklas Keller
ef6c2b10ee
Micro-optimize interval = 0 if
2017-05-23 20:17:34 +02:00
Niklas Keller
38ef4d9ffa
Fix issues with interval = 0 repeat watchers, fixes #131
2017-05-23 19:46:23 +02:00