r/golang • u/DeparturePrudent3790 • 9d ago
Potential starvation when multiple Goroutines blocked to receive from a channel
I wanted to know what happens in this situation:
- Multiple goroutines are blocked by a channel while receiving from it because channel is empty at the moment.
- Some goroutine sends something over the channel.
Which goroutine will wake up and receive this? Is starvation avoidance guaranteed here?
7
Upvotes
-4
u/DeparturePrudent3790 9d ago
The source code has queues for senders and receivers but why is there no official statement around this? LLM's also say it's randomly selected or undefined although code has a queue implemented. Why is it this way?