Skip to content

Releases: amphp/amp

1.0.0

27 Jul 17:48
Compare
Choose a tag to compare

Initial stable release.

v0.15.0

08 Dec 16:55
Compare
Choose a tag to compare

Additions

  • Added Reactor::__debugInfo() hook to ease debugging.
  • Added Reactor::onError() exception handling hook to handle asynchronous
    errors without breaking the event loop
  • Added optional boolean $noWait parameter to Reactor::tick($noWait)
  • Added Amp\getReactor() and Amp\chooseReactor() functions
  • Added Amp\wait() to replace deprecated Amp\Promise::wait()
  • Added new "bind" yield command

Removals:

  • Removed Combinator class in favor of combinator functions
  • Removed Resolver class, use GeneratorResolver trait internally
  • Promisor implementations no longer have any knowledge of the event reactor.

Deprecations:

  • Deprecated Promise::wait(). New code should use Amp\wait() to synchronously
    wait for promise completion
  • Deprecated Amp\reactor() function. New code should use Amp\getReactor()
    instead
  • The ReactorFactory class is deprecated and scheduled for removal. Please use
    the Amp\getReactor() function instead of ReactorFactory::select()

Bugfixes:

  • Correctly break out of the NativeReactor run loop immediately when
    Reactor::stop() invoked inside immediately watchers
  • Correctly exit UvReactor and LibeventReactor run loop when no outstanding
    watchers remain active
  • Other miscellaneous fixes

Other:

  • Changed "wait" yield command to "pause"

BC BREAKS:

  • None

Functions API, easier single-thread use

01 Aug 19:38
Compare
Choose a tag to compare
  • Added functions.php API for reactor use in procedural and functional code.
  • ReactoryFactory::select() is now a static singleton method. Single-threaded code should never
    use multiple event loops. This change is made to ease Reactor procurement and minimize bugs
    from the existence of multiple Reactor instances in the same thread. It is NOT, however, an
    excuse to forego dependency injection. Do not abuse the global nature of the event loop. Lazy
    injection is fine, but laziness on your part as a programmer is not.

BC BREAKS:

  • The ReactorFactory::__invoke() magic method has been removed. Any code relying on it must migrate
    references to ReactoryFactory::select()

Add libuv support

22 Jul 17:50
Compare
Choose a tag to compare

This release adds support for Reactor backends using the php-uv extension as well as other minor features. It contains no BC breaks.

0.1.1

08 Feb 00:41
Compare
Choose a tag to compare
v0.1.1

Infinite recursion fix