Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Difference From sigq-0.13.2 To sigq-0.13.3
2023-09-15
| ||
13:32 | Implement WeakPusher, a weak reference to Pusher objects. check-in: bd3e071eea user: jan tags: trunk | |
2023-07-27
| ||
01:26 | Release maintenance. check-in: 727d7924a6 user: jan tags: sigq-0.13.3, trunk | |
01:21 | Fix premature Puller stale error bug. check-in: 68dd3c42ad user: jan tags: trunk | |
2023-07-26
| ||
19:54 | Documentation udates. Hide push and pull modules from public. check-in: b485d7b118 user: jan tags: sigq-0.13.2, trunk | |
2023-07-25
| ||
01:49 | Release maintenance. check-in: 052111cfd8 user: jan tags: sigq-0.13.1, trunk | |
Changes to Cargo.toml.
1 2 | [package] name = "sigq" | | | 1 2 3 4 5 6 7 8 9 10 | [package] name = "sigq" version = "0.13.3" authors = ["Jan Danielsson <jan.danielsson@qrnch.com>"] edition = "2021" license = "0BSD" categories = [ "asynchronous", "concurrency", "data-structures" ] keywords = [ "threads", "sync" ] repository = "https://repos.qrnch.tech/pub/sigq" description = "Queue that signals waiting consumers about node availability" |
︙ | ︙ |
Changes to src/pull.rs.
︙ | ︙ | |||
22 23 24 25 26 27 28 | /// Returns `Err(StaleErr)` if there are no more items in queue and there are /// no more [`Pusher`](super::Pusher) objects associated with this /// `Puller`. #[cfg_attr(feature = "inline-more", inline)] pub fn pop(&self) -> Result<I, StaleErr> { let mut inner = self.0.inner.lock(); loop { | | | 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | /// Returns `Err(StaleErr)` if there are no more items in queue and there are /// no more [`Pusher`](super::Pusher) objects associated with this /// `Puller`. #[cfg_attr(feature = "inline-more", inline)] pub fn pop(&self) -> Result<I, StaleErr> { let mut inner = self.0.inner.lock(); loop { if inner.q.is_empty() && inner.npushers == 0 { break Err(StaleErr); } else { match inner.q.pop_front() { Some(node) => { break Ok(node); } None => { |
︙ | ︙ | |||
127 128 129 130 131 132 133 | mut self: Pin<&mut Self>, ctx: &mut Context<'_> ) -> Poll<Self::Output> { let mut inner = self.ctx.inner.lock(); match inner.q.pop_front() { Some(node) => Poll::Ready(Ok(node)), None => { | | | 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 | mut self: Pin<&mut Self>, ctx: &mut Context<'_> ) -> Poll<Self::Output> { let mut inner = self.ctx.inner.lock(); match inner.q.pop_front() { Some(node) => Poll::Ready(Ok(node)), None => { if inner.q.is_empty() && inner.npushers == 0 { // No more nodes and no more pushers, so return None Poll::Ready(Err(StaleErr)) } else { // Generate a unique identifier for this waker let id = loop { let id = self.ctx.idgen.fetch_add(1, Ordering::SeqCst); // Make sure it is non-zero and unique |
︙ | ︙ |
Changes to www/changelog.md.
1 2 3 4 5 6 7 8 9 10 11 | # Change Log ## [Unreleased] ### Added ### Changed ### Removed | | | > > > > > > < < < < < < < < < < < < | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | # Change Log ## [Unreleased] ### Added ### Changed ### Removed ## [0.13.3] - 2023-07-27 ### Changed - Fixed bug that caused `Puller` to return `Err(StaleErr)` even though nodes still remain in the queue. ## [0.13.2] - 2023-07-26 ### Changed - Documentation updates. ## [0.13.1] - 2023-07-25 ### Changed - When the last `Puller` is dropped, clear the queue. ## [0.13.0] - 2023-07-25 ### Changed - `Pusher::push()` will return `Err(StaleErr)` if there are no more associated `Puller`s. ## [0.12.0] - 2023-07-24 ### Added - Add an `inline-more` feature (enabled by default). ### Changed - Split `Queue` into `Pusher` and `Puller` end-points. - When taking nodes off the queue using `Puller`, return a `Result` which can indicate an error if no nodes remain and there are no more `Pushers` associated with the queue (implied: If no pushers remain, no new nodes will be added, so the queue is effectively dead). - Dependencies updated: - `indexmap` updated to `2.0.0` - Use Rust edition 2021. - Bump MSRV to 1.64 (based on MSRV in `indexmap`) ## [0.11.0] - 2022-09-09 ### Added - Add a `Default` implementation for `Queue`. - Explicitly set MSRV is `1.36` |
︙ | ︙ |