You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
xi_rpc::next_read currently implements naïve busy-polling to service multiple task sources in a non-blocking manner. This is done by attempting to read from the peer with a very short timeout, and if the timeout is met, try to service other "background tasks".
A more appropriate implementation would either be a proper poll that blocks indefinitely on all sources, or something along the lines of an mpsc select! across multiple channels.
On an ultrabook idling at 800MHz, a busypoll with 5ms timeout leads to ~1% reported CPU utilization, which is a lot for doing nothing.
The text was updated successfully, but these errors were encountered:
Xi is not under active development, so I wouldn't expect this to be fixed in the near future, but I agree that this is an inelegant aspect of the design.
xi_rpc::next_read
currently implements naïve busy-polling to service multiple task sources in a non-blocking manner. This is done by attempting to read from the peer with a very short timeout, and if the timeout is met, try to service other "background tasks".A more appropriate implementation would either be a proper poll that blocks indefinitely on all sources, or something along the lines of an mpsc
select!
across multiple channels.On an ultrabook idling at 800MHz, a busypoll with 5ms timeout leads to ~1% reported CPU utilization, which is a lot for doing nothing.
The text was updated successfully, but these errors were encountered: