about summary refs log tree commit diff
path: root/src/rt/rust_scheduler.cpp
AgeCommit message (Collapse)AuthorLines
2011-08-01Replace a lock/unlock with scoped_lock in rust_scheduler::create_taskBrian Anderson-3/+5
2011-07-29Minimize scheduler locking on task creationBrian Anderson-0/+2
This takes my CPU utilization on task-perf-spawnalot from 35% to 55%
2011-07-29Removing proxies and message queues.Eric Holk-31/+8
2011-07-28Do all runtime calls to getenv at initializationBrian Anderson-1/+3
getenv is not threadsafe and (maybe as a result) it's randomly crashing with CFLAGS=-g and RUST_THREADS=32. Calls from rust code are still on their own.
2011-07-28Atomic reference counting for tasks.Eric Holk-14/+11
2011-07-28Made task threads wait instead of sleep, so they can be woken up. This ↵Eric Holk-9/+7
appears to give us much better parallel performance. Also, commented out one more unsafe log and updated rust_kernel.cpp to compile under g++
2011-07-28Per-thread scheduling. Closes #682.Eric Holk-23/+33
Tasks are spawned on a random thread. Currently they stay there, but we should add task migration and load balancing in the future. This should drammatically improve our task performance benchmarks.
2011-07-28Made root_task no longer special.Eric Holk-3/+0
2011-07-21Lots of work on memory tracking and channels.Eric Holk-1/+2
We're trying to get closer to doing correct move semantics for channel operations. This involves a lot of cleanup (such as removing the unused sched parameter from rust_vec constructor) and making circular_buffer kernel_owned. Added tagging for memory allocations. This means we give a string tag to everything we allocate. If we leak something and TRACK_ALLOCATIONS is enabled, then it's much easier now to tell exactly what is leaking.
2011-07-14Move the responsibility for process failure from tasks to the schedulerBrian Anderson-0/+1
When the root task fails the process fails. Failures on other tasks propagate up the task tree. Failures on non-root tasks without parents just (theoretically) unwind and disappear.
2011-07-13Fix compile-command lines in rt.Graydon Hoare-1/+1
2011-07-13Attempt to correct buggy win32 timer code (causing tinderbox failures).Graydon Hoare-2/+3
2011-07-06Added a task wakeup callback. Closes #599.Eric Holk-1/+3
The callback happens when a task moves from the "blocked" state to the "running" state. The callback is also inherited by child tasks. There is currently only a native API. This code hasn't been heavily exercised yet.
2011-06-29Added inheritance for task pinning. Closes #598 for real.Eric Holk-0/+2
2011-06-29Adding support for pinning tasks to the currently running thread. Closes #598.Eric Holk-10/+9
2011-06-28Renamed what's left of rust_dom to rust_schedulerEric Holk-0/+308