Workaround for the high cpu usage issue in coroutines on linux (#5186)
Fixes high cpu usage when all coroutines are asleep
This commit is contained in:
parent
d04ca6ef23
commit
d356c37185
1 changed files with 3 additions and 3 deletions
|
|
@ -66,14 +66,14 @@ proc run*() =
|
|||
## Starts main event loop which exits when all coroutines exit. Calling this proc
|
||||
## starts execution of first coroutine.
|
||||
var node = coroutines.head
|
||||
var minDelay: float = 0
|
||||
var minDelay: int = 0 # in milliseconds
|
||||
var frame: PFrame
|
||||
while node != nil:
|
||||
var coro = node.value
|
||||
current = coro
|
||||
os.sleep(int(minDelay * 1000))
|
||||
os.sleep(minDelay)
|
||||
|
||||
var remaining = coro.sleepTime - (epochTime() - coro.lastRun);
|
||||
var remaining = int((coro.sleepTime - (epochTime() - coro.lastRun)) * 1000)
|
||||
if remaining <= 0:
|
||||
remaining = 0
|
||||
let res = setjmp(mainCtx)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue