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
A-runtimeArea: std's runtime and "pre-main" init for handling backtraces, unwinds, stack overflowsC-cleanupCategory: PRs that clean code up or issues documenting cleanup.E-easyCall for participation: Easy difficulty. Experience needed to fix: Not much. Good first issue.
16:55 <@graydon> brson: actually yeah, my bet is on the WaitForSingleObject(thread, INFINITE) in the bottom of rust_timer.cpp
16:55 <@graydon> just delete that file and any uses of it. it's a disaster and we'll do better once we have Real Timers And Stuff from uv
16:55 <@graydon> I'm ashamed to have written it
After looking into this, rust_timer.cpp was dead code, so I removed it. The scheduler is currently using a timed_wait on a condition variable because the signals to the condition variable don't always wake the scheduler (they are not always done while the lock is held). I'm trying to fix this now and remove the timed_wait() function.
I don't know why we need the yield(time) version currently, but I would like to pursue just completely getting rid of the timer version of yield, so that yield does nothing but yield control to the scheduler. When we get uv bindings we can use their timers.
A-runtimeArea: std's runtime and "pre-main" init for handling backtraces, unwinds, stack overflowsC-cleanupCategory: PRs that clean code up or issues documenting cleanup.E-easyCall for participation: Easy difficulty. Experience needed to fix: Not much. Good first issue.
The scheduler includes periodic timer wakeups that probably don't do anything useful now (were once for preemption). Let's give them the boot.
The text was updated successfully, but these errors were encountered: