4 ms·
The Tokio scheduler uses cooperative multitasking (non-preemptive). So, if your task runs without yielding it can prevent other runnable tasks from executing.
by carllerche 7y ago
The Tokio scheduler uses cooperative multitasking (non-preemptive). So, if your task runs without yielding it can prevent other runnable tasks from executing.
So, if that is acceptable, then it is fine.
- weavie 7y agoIs there a recommended approach to dealing with the occassional cpu intensive task? Supposing you were running an http server and most responses were very quick - but occassionally a request came along that required calculating pi to the n billionth digit.. (for example).. Would you need to farm that request to a separate process - or could you keep it in process but in a separate thread outside of Tokio?
- nicoburns 7y agoI believe tokio-threadpool is designes for this scebario.
- carllerche 7y agoRight now, CPU intensive code blocks or code blocks that block need to be annotated. This way, the scheduler can respond accordingly (cooperative).
- deleted 7y ago[deleted]