Skip to content

wait queue is quite bad #14

@hawkw

Description

@hawkw

the current wait queue implementation isn't very good --- it's essentially a spinlock around a Vec. this is similar to what crossbeam uses, but worse :)

the downside of this approach is that when there's a large number of senders, there's severe tail latency because the vec has to be reallocated. also, memory usage doesn't decrease when the queue drains.

note this violin plot: when there are a lot of waiters, the tail latency is quite bad:
image

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions