about summary refs log tree commit diff
path: root/src/libstd/rt/local.rs
AgeCommit message (Collapse)AuthorLines
2013-08-12std: Re-optimize tls access on local allocation pathBrian Anderson-5/+1
I did this once but acciddentally undid it in a later patch.
2013-08-07std: Allow spawners to specify stack sizeBrian Anderson-5/+6
2013-08-04std::rt: Run the tests for Local in a bare threadBrian Anderson-36/+45
Otherwise interferes with the existing runtime
2013-08-01modified local to include an implementation for try_unsafe_borrow::<Task> so ↵toddaaro-2/+8
that the log methods will work
2013-08-01minor tweaks - unboxed the coroutine so that it is no longer a ~ pointer ↵toddaaro-2/+0
inside the task struct, and also added an assert to verify that send is never called inside scheduler context as it is undefined (BROKEN) if that happens
2013-08-01Fixed a race where a scheduler configured to only run tasks pinned to it ↵toddaaro-1/+1
would "bounch" a regular task in and out of the work queue without allowing a different scheduler to run it.
2013-08-01A major refactoring that changes the way the runtime uses TLS. In thetoddaaro-59/+87
old design the TLS held the scheduler struct, and the scheduler struct held the active task. This posed all sorts of weird problems due to how we wanted to use the contents of TLS. The cleaner approach is to leave the active task in TLS and have the task hold the scheduler. To make this work out the scheduler has to run inside a regular task, and then once that is the case the context switching code is massively simplified, as instead of three possible paths there is only one. The logical flow is also easier to follow, as the scheduler struct acts somewhat like a "token" indicating what is active. These changes also necessitated changing a large number of runtime tests, and rewriting most of the runtime testing helpers. Polish level is "low", as I will very soon start on more scheduler changes that will require wiping the polish off. That being said there should be sufficient comments around anything complex to make this entirely respectable as a standalone commit.
2013-07-09std::rt: Do local tests in a bare thread to not interfere with the schedulerBrian Anderson-21/+30
2013-07-01Refactored the runtime to view coroutines as a component of tasks, instead ↵toddaaro-2/+7
of tasks as a component of coroutines.
2013-06-17std: Rename `abort!` to `rtabort!` to match other macrosBrian Anderson-12/+12
2013-06-14redesigned the pinning to pin deal with things on dequeue, not on enqueuetoddaaro-3/+3
2013-06-10debugged a compiler ICE when merging local::borrow changes into the main io ↵toddaaro-5/+30
branch and modified the incoming new file lang.rs to be api-compatible
2013-05-30core::rt: deny(unused_imports, unused_mut, unused_variable)Brian Anderson-1/+0
2013-05-29Merge remote-tracking branch 'brson/io' into incomingBrian Anderson-4/+5
Conflicts: src/libstd/rt/sched.rs
2013-05-23cleanup warnings from libstdErick Tryzelaar-4/+4
2013-05-22libstd: Fix merge fallout.Patrick Walton-0/+118