On every select! every io will do register and deregister. mpsc::Receiver will send itself a notification if it's not empty already.
As mio notifications (sender) are used for this - and there's no way of cancelation (like eg. timers), in case of a lot of channels being used in one select a lot of them can fire self-notification, over and over again, since at some point select_wait will return bogus values (from stale notification), leading to a select! being called over and over in the loop.
On every
select!
every io will doregister
andderegister
.mpsc::Receiver
will send itself a notification if it's not empty already.As mio notifications (
sender
) are used for this - and there's no way of cancelation (like eg. timers), in case of a lot of channels being used in oneselect
a lot of them can fire self-notification, over and over again, since at some pointselect_wait
will return bogus values (from stale notification), leading to aselect!
being called over and over in the loop.