Releases: oliver-giersch/async-unsync
Releases · oliver-giersch/async-unsync
v0.3.0
Release 0.3.0
- Performance improvements to
Semaphore
.
Breaking Changes
- Removes
bound::[Channel|Sender|SenderRef]::unbounded_send
- Removes
Semaphore::outstanding_permits
andSemaphore::return_permits
- Alters the behaviour of
bounded::Channel::from_iter
to use the maximum of the iterator's length and the given capacity as the channel's capacity.
v0.2.2
Release 0.2.2
- Fixes a bug where a
Waker
registered by aSemaphore
would not be dropped,
causing memory leaks.
v0.2.1
Release 0.2.1
- Fixes a bug
Semaphore
that would not wake waiters on close. - Change
Semaphore::acquire[_many]
to return a namedFuture
type.
v0.2.0
Release 0.2.0
- Includes
Semaphore
API to acquire multiple permits in a single call - Introduces
alloc
feature and enablessemaphore
without it, i.e.,
Semaphore
now requires zero allocations. - Enables non-allocating
oneshot
channel uses withoutalloc
feature. - Document panic behavior when creating bounded channels with zero capacity.
- Adds
from_iter
APIs forbounded
andunbounded
channels - Adds
bounded::[Channel|Sender|SenderRef]::unbounded_send
API. - Adds
Semaphore::outstanding_permits
for accounting handed out permits
Breaking Changes
- Renames
Semaphore::[try_]acquire_one
to[try]_acquire
- Introduces split
alloc
andstd
features,bounded
andunbounded
no
longer exist without thealloc
feature enabled,
oneshot::Channel::into_split
likewise requiresalloc
.
v0.1.1
This release fixes some bugs around closing semaphores and split mpsc
channels. It also improves memory management in all allocating data structures, to periodically check if space can be saved by shrinking buffers. This should improve memory usage in very long lived channels (no more apparent memory leaks).
v0.1.0 - initial release
Contains full-featured async
+ !Sync
data structures:
- bounded & unbounded MPSC channels
- "oneshot" channel
- semaphore implementation