Amp Versions Save

A non-blocking concurrency framework for PHP applications. 🐘

v2.5.1

3 years ago
  • Fixed issue where cancelling timer watchers in NativeDriver could result in timers being executed out of order (#332)
  • Fixed 100% CPU usage in NativeDriver when only signal watchers were enabled

v2.5.0

3 years ago
  • Add Amp\Iterator\discard() (#315)
  • Fix potential warning on shutdown in UvDriver
  • Fix repeat watchers in NativeDriver that are disabled and re-enabled during callback invocation (#325)
  • Fix timer intervals being counted from timer creation instead of last tick time (#319)
  • Loop::now() / Driver::now() is no longer cached in each tick

v2.4.4

4 years ago
  • Fixed Delayed::reference() / Delayed::unreference() after the promise resolved
  • Changed return type of Delayed::reference() / Delayed::unreference() to self to allow fluid API usage
  • Add generics for Amp\Promise\wait
  • Improved types for Amp\call / Amp\coroutine

v2.4.3

4 years ago
  • Improved types for Amp\call
  • Improved types for Deferred::resolve() (#307)

v2.4.2

4 years ago
  • Provide useful exception trace in TimeoutCancellationToken (#303)
  • Add parameter for custom timeout message (#299)
  • Add psalm annotations for improved static analysis

v2.4.1

4 years ago
  • Fixed undefined index warning when stream_select() fails but error_get_last() returns null.

v2.4.0

4 years ago
  • Added getCurrentTime() as public API, providing millisecond timestamps for runtime measurements with special support for 32 bit systems. Returned timestamps are relative to an arbitrary point in time, so this API is only suitable to compare two timestamps generated in the same process.

v2.3.2

4 years ago
  • Fixed cancellation trace recording in TracingDriver

v2.3.1

4 years ago
  • Fixed TracingDriver not overriding all methods.

v2.3.0

4 years ago
  • Added TracingDriver to debug (hanging) tests / applications. The environment variable AMP_DEBUG_TRACE_WATCHERS=true can be set to automatically create a TracingDriver wrapping the actual driver. TracingDriver::dump() can be used to dump all enabled, referenced watchers keeping the loop running.