Skip to content

fill wakeup call can spin forever(or until a consumer is blocked again) on the MpscBlockingArrayQueue #339

@nitsanw

Description

@nitsanw

Similar to #336 issue we have the producer trying to wakeup the consumer after a fill here:

    private void wakeupConsumer()
    {
        Thread consumerThread;
        do
        {
            consumerThread = lvBlocked();
        } while (consumerThread == null);

        LockSupport.unpark(consumerThread);
    }

The consumer can wake up from a timeout independently during the time period between the 'fill' moving the producerIndex and the wakeup call. The producer thread then spins as it cannot find a blocked consumer.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions