4 comments

  • AceJohnny2 6 hours ago
    Because I had to look it up:

    SPSC = Single Producer Single Consumer

    MPMC = Multiple Producer Multiple Consumer

    (I'll let you deduce the other abbreviations)

    • endorphine 1 hour ago
      S = Single

      M = Multi

      ---

      C = Consumer

      P = Producer

  • enricozb 5 hours ago
    When reading this project's wiki [0], it mentions that Kanal (another channel implementation) uses an optimization that "makes [the] async API not cancellation-safe". I wonder if this is the same / related issue to the recent HN thread on "future lock" [1]. I hadn't heard of this cancellation safety issue prior to that other HN thread.

    [0]: https://github.com/frostyplanet/crossfire-rs/wiki#kanal [1]: https://news.ycombinator.com/item?id=45774086

    • paholg 4 hours ago
      Futurelock is not about cancellation safety (cancellation is actually one solution to futurelock), though the related issues that are linked in that post are.
    • andrepd 29 minutes ago
      Cancellation safety is another thing entirely, but one about which there's also an oxide RFD https://rfd.shared.oxide.computer/rfd/400
  • Hamuko 1 hour ago
    I feel like testing if it'd be faster than tokio::sync::mpsc in my project, but in the context of a websocket client, the performance of just using tokio is already pretty good. Existing CPU usage is already negligible (under a minute of CPU time in >110 hours real time).
  • truth_seeker 3 hours ago