Aaron Piotrowski
6d5e0f5ff7
More direct use of fiber
...
Avoids creating unnecessary promise objects.
delay(0) ticking the loop only once required using delay(x) instead of delay(0) in some tests.
2020-11-05 23:55:06 -06:00
Aaron Piotrowski
f3b189f33f
Update for Continuation
2020-11-05 11:29:31 -06:00
Aaron Piotrowski
cff6bba499
Missed an Awaitable usage
2020-11-05 10:16:42 -06:00
Aaron Piotrowski
8d8358023f
Merge branch 'master' into v3
2020-11-03 17:29:41 -06:00
Aaron Piotrowski
ae42c11053
Allow failing pipeline with DisposedException
2020-11-03 17:02:56 -06:00
Aaron Piotrowski
865238bc16
Use fiber directly when emitting values
2020-11-03 16:55:29 -06:00
Aaron Piotrowski
5d026083df
Update for removal of Awaitable in ext-fiber
2020-11-03 11:18:35 -06:00
descawed
ecdc3c476b
Correct heap implementation in TimerQueue ( #332 )
...
* Correct heap implementation in TimerQueue, which would sometimes extract timers in the wrong order after a node other than the root was removed
* Factor out old heap rebuilding code into its own method to satisfy codeclimate requirements
2020-11-03 10:23:45 -06:00
Aaron Piotrowski
0838d483fe
Rethrow in loop from any Awaitable failure
2020-11-01 11:19:17 -06:00
Aaron Piotrowski
3ebd44ee09
defer instead of Loop::defer
...
Callbacks should be run in a fiber in case they await.
2020-11-01 11:14:03 -06:00
Aaron Piotrowski
eaa7c45049
Make Driver an interface
2020-11-01 09:43:21 -06:00
Aaron Piotrowski
7669f89b51
Minor optimization for async()
2020-10-30 10:41:38 -05:00
Aaron Piotrowski
6cf7ae13bb
Remove automatic Generator to Coroutine conversion
2020-10-30 10:36:19 -05:00
Aaron Piotrowski
7612ef3f1e
Drop direct conversion of React promises
...
React promises are still supported using Amp\Promise\adapt().
2020-10-30 10:19:12 -05:00
Niklas Keller
fc423c7db5
Remove static to access $this
2020-10-25 21:44:01 +01:00
Aaron Piotrowski
eec21c12c6
Fix use before init
2020-10-22 23:03:58 -05:00
Aaron Piotrowski
80ecfe6b99
Promisify signals
2020-10-10 09:06:49 -05:00
Aaron Piotrowski
ee3c09087b
Merge branch 'master' into v3
2020-10-10 08:57:34 -05:00
Aaron Piotrowski
eb2f325586
Fix NativeDriver when only signals are enabled
2020-10-10 08:54:50 -05:00
Aaron Piotrowski
1db52920ab
Mark loop classes final
2020-10-09 13:23:33 -05:00
Aaron Piotrowski
8ee7d61452
Remove registry data and error handler when clearing loop
2020-10-07 22:52:23 -05:00
Aaron Piotrowski
cecbbd3f40
Drop sleep() and refactor delay to use await()
2020-10-06 23:40:14 -05:00
Aaron Piotrowski
1b30909215
Remove succeed() and fail()
2020-10-04 10:22:51 -05:00
Aaron Piotrowski
40aab8eef5
Add defer()
2020-10-04 10:22:21 -05:00
Aaron Piotrowski
249aa95256
Forbid loop nesting
2020-10-03 09:42:29 -05:00
Aaron Piotrowski
45bd189e76
Add Driver::clear()
...
Intended for tests over swapping the entire event loop.
This allows forbidding swapping the global event loop once it is started.
2020-10-03 08:38:31 -05:00
Aaron Piotrowski
822995a69b
Remove InvalidYieldError
...
Unused.
2020-10-02 22:49:41 -05:00
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
7a6fa6fd34
Simplify AsyncGenerator too
2020-10-02 14:14:30 -05:00
Aaron Piotrowski
4af828f30d
Merge branch update-tests into v3
2020-10-02 13:59:54 -05:00
Aaron Piotrowski
8bd6cff602
Update Struct to use reflection
...
Typed properties requires reflection.
2020-10-02 13:56:40 -05:00
Aaron Piotrowski
0933a501fd
Remove unnecessary version checks
2020-10-02 13:56:17 -05:00
Aaron Piotrowski
d62ba46fb4
Fix pipeline functions
2020-10-02 13:55:58 -05:00
Aaron Piotrowski
bf58e595be
Defer cancellation callback
2020-10-02 13:55:46 -05:00
Aaron Piotrowski
492442db2d
Check run count on dispatch
2020-10-02 13:55:00 -05:00
Niklas Keller
3219618fd8
Add deprecations
2020-09-29 21:25:42 +02:00
Niklas Keller
55af98a8ba
Simplify Coroutine
2020-09-29 21:13:30 +02:00
Aaron Piotrowski
32c2cd6d64
Drop Loop::run() and Loop::stop()
...
This is a *huge* shift, but there’s no reason for these to exist in a world with top-level await.
2020-09-27 09:38:52 -05:00
Aaron Piotrowski
0eceb48fad
Refactor internal traits as classes
...
Trait tests should test Deferred and Emitter instead, will update with other tests.
2020-09-26 23:14:17 -05:00
Aaron Piotrowski
7e03928faf
Drop CallableMaker
2020-09-26 22:31:08 -05:00
Aaron Piotrowski
07a9965ba6
Run promisor in LazyPromise in new fiber
2020-09-26 22:26:57 -05:00
Aaron Piotrowski
b65823e0bb
Refactor Coroutine to use await()
...
Dropped polyfill, ext-fiber will be required to run any v3 code.
2020-09-26 22:22:07 -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
b35c9f1956
Fix throw from send
2020-09-25 12:57:56 -05:00
Aaron Piotrowski
72b50523a3
Add separate method to await back pressure
2020-09-25 12:32:37 -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
8e4cc1bbd1
Refactor Pipeline for async/await
2020-09-24 22:14:58 -05:00
Aaron Piotrowski
5f6db028ab
Initial fiber support
2020-09-24 12:53:32 -05:00
Aaron Piotrowski
6dd2b990f8
Revert AsyncGenerator being lazy
2020-09-24 12:53:32 -05:00