- Fixed syntax error
- Added
Traverser::asGenerator()
- Fixed
Channel
crashing if there is only one pending sender/receiver and it gets canceled.
- Added
PubSub
class
- Added
Await::safeRace
- Added
Await::safeRace
- Support virion 3.0 spec
- Fixed Traverser not passing resolved value to the inner generator (#184)
- Updated phpstan hint to allow promise resolver to have no arguments
- Deprecated
yield $generator
, useyield from $generator
instead
- Added
Loading::getSync
- Added
Channel
- Added
Await::promise
- Deprecated all constnat yields in favour of
Await::promise
- Added
Mutex
- Allow
Await::all([])
to simply return empty array
- Added
Traverser
API- Added
Traverser::next()
- Added
Traverser::collect()
- Added
Traverser::interrupt()
- Added
- Added
Await::all()
andAwait::race()
for a generator interface - Fixed crash during double promise resolution, ignores second call instead
- Marked some internal functions @internal or private
- Debug backtrace includes objects.
- Added
Await::RESOLVE_MULTI
- Added debug mode
- Generator traces are appended to throwable traces under debug mode
- Resolve function (result of
yield Await::RESOLVE
) no longer requires a parameter
- Added
Await::RACE
- Fixed later-resolve/immediate-reject with
Await::ALL
Complete rewrite
- Entry level
Await::func
Await::closure
- Intermediate level
Await::FROM
(currently equivalent toyield from
)
- Implementation level
Await::ASYNC
Await::CALLBACK