Releases: amphp/pipeline
Releases · amphp/pipeline
1.2.3
1.2.2
What's Changed
- Fixed clearing back-pressure if a
Queuewas completed while containing emitted values which had not been consumed, then the consumer explicitly disposed (calledConcurrentIterator::dispose()) of the associated iterator without consuming those values. Prior, the futures were not properly resolved with aDisposedException, but now will resolve as expected.
Full Changelog: v1.2.1...v1.2.2
1.2.1
What's Changed
- Fix a potential race condition when using a
Queueto create aConcurrentIterator. AnErrorwith message "Must call suspend() before calling throw()" was thrown when aCancellationprovided toConcurrentIterator::continue()was cancelled and the underlyingQueueinstance was simultaneously completed. See #22.
Full Changelog: v1.2.0...v1.2.1
1.2.0
1.1.0
- Added
Pipeline::merge()which combines multiple iterators, emitting a value whenever any iterator emits a value. - Fixed
Pipeline::take()not completing until a value beyond the given count was emitted. The pipeline now completes immediately after emitting the last view. - Marked the template type of
ConcurrentIteratoras covariant.
1.0.0
Initial stable release 🎉
Changes from 1.0.0 Beta 7
- Marked
ConcurrentArrayIterator,ConcurrentChainedIterator, andConcurrentIterableIteratoras@internal. Instead of these classes, usePipeline::fromIterable()orPipeline::concat() Pipeline::concat()now accepts an array of anyiterable, not only otherPipelineobjects
1.0.0 Beta 7
- Removed failing a
Queuethat is destructed without being completed. PHP's random destruct order sometimes will lead to theQueuedestructor being invoked before another destructor that would have completed the queue.
1.0.0 Beta 6
- Add compatibility with Revolt v1.x
- Improve
ConcurrentIterableIterator
1.0.0 Beta 5
- Added
isComplete()to theConcurrentIteratorinterface that returnstruewhen the iterator has been completed (either successfully or with an error) and no further values are pending) - Fixed an issue where a reference to the prior value emitted on a
ConcurrentIteratorwas held while awaiting the next value.
1.0.0 Beta 4
- PHP 8.1 is now required.
- Fixed circular references in
ConcurrentIterableIteratorandConcurrentFlatMapIteratorthat prevented quick garbage collection, particularly problematic with instances created fromPipeline::fromIterable()using a generator.