Releases: amphp/sync
Releases · amphp/sync
2.3.0
What's Changed
- Fixed posix semaphore blocking thread when there is no space left on device by @azjezz in #29
- Added a buffer size parameter to
createChannelPair()
to specify a number of items which may be buffered in memory before back pressure is applied.
New Contributors
Full Changelog: v2.2.0...v2.3.0
2.2.0
2.1.0
2.0.0
Stable release compatible with AMPHP v3 and fibers! 🎉
As with other libraries compatible with AMPHP v3, most cases of parameters or returns of Promise<ResolutionType>
have been replaced with ResolutionType
.
Changes from 1.x
ConcurrentIterator
functions have been removed are now available as methods onPipeline
inamphp/pipeline
FileMutex
has been removed, as a better implementation ships as part ofamphp/file
- Removed
ThreadedMutex
andThreadedSemaphore
- Removed
Lock::getId()
Barrier::await
supports cancellation nowsynchronized
accepts anySemaphore
now instead of aMutex
only- Added
Channel
fromamphp/parallel
, which allows two way communicate between execution contexts, such as two coroutines or two processes.Channel
has been modified to extendClosable
- Also added
Parcel
fromamphp/parallel
, which allows sharing a value across execution contexts with mutually-exclusive access to modifying that value usingParcel::synchronized()
. - Added
createChannelPair()
function which returns a pair of connectedChannel
objects. - Added
RateLimitingSemaphore
which releases locks after a given time elapses. - Added
StaticKeySemaphore
, analogous toStaticKeyMutex
Changes from 2.0.0 Beta 6
- Added
RateLimitingSemaphore
which releases locks after a given time elapses. - Added
StaticKeySemaphore
, analogous toStaticKeyMutex
2.0.0 Beta 6
- Add compatibility with Revolt v1.x
2.0.0 Beta 5
- Fixed return type of
createChannelPair()
to use the interface - Fixed close of channels returned from
createChannelPair()
- Release locks synchronously instead of asynchronously on explicit
release()
calls
2.0.0 Beta 4
- PHP 8.1 now required.
Channel
now extendsAmp\Closable
, which adds anonClose()
method to attach a closure that is invoked when the channel closes.
2.0.0 Beta 3
This release moves Channel
and Parcel
interfaces from amphp/parallel
to this library.
Channel
allows two way communicate between execution contexts, such as two coroutines or two processes.Parcel
allows sharing a value across execution contexts, with mutually-exclusive access to modifying that value usingParcel::synchronized()
.
2.0.0 Beta 2
- Update to
revolt/event-loop
v0.2.x (#20)
2.0.0 Beta 1
Note: This is a pre-release, there might be breaking changes in the final stable version.
- Major release avoiding promises in favor of fibers supported by Revolt
ConcurrentIterator
functions have been removed and will be available as operators inamphp/pipeline
FileMutex
has been removed, as a better implementation ships as part ofamphp/file
- Removed
ThreadedMutex
andThreadedSemaphore
- Removed
Lock::getId()
Barrier::await
supports cancellation nowsynchronized
accepts anySemaphore
now instead of aMutex
only