rust/src/libstd/rt
bors 03b324ff44 auto merge of #12186 : alexcrichton/rust/no-sleep-2, r=brson
Any single-threaded task benchmark will spend a good chunk of time in `kqueue()` on osx and `epoll()` on linux, and the reason for this is that each time a task is terminated it will hit the syscall. When a task terminates, it context switches back to the scheduler thread, and the scheduler thread falls out of `run_sched_once` whenever it figures out that it did some work.

If we know that `epoll()` will return nothing, then we can continue to do work locally (only while there's work to be done). We must fall back to `epoll()` whenever there's active I/O in order to check whether it's ready or not, but without that (which is largely the case in benchmarks), we can prevent the costly syscall and can get a nice speedup.

I've separated the commits into preparation for this change and then the change itself, the last commit message has more details.
2014-02-14 00:26:47 -08:00
..
args.rs Move replace and swap to std::mem. Get rid of std::util 2014-02-11 05:21:35 +08:00
at_exit_imp.rs Move replace and swap to std::mem. Get rid of std::util 2014-02-11 05:21:35 +08:00
crate_map.rs Removed all instances of XXX in preparation for relaxing of FIXME rule 2014-01-26 14:42:53 -05:00
env.rs remove type descriptors from proc and @T 2014-02-07 20:08:35 -05:00
global_heap.rs Register new snapshots 2014-02-13 12:54:17 -08:00
local.rs Removing do keyword from libstd and librustc 2014-01-29 09:15:41 -05:00
local_heap.rs Don't allocate in LocalHeap::new() 2014-02-13 20:29:47 -08:00
local_ptr.rs Replace C types with Rust types in libstd, closes #7313 2014-01-22 19:20:47 +01:00
logging.rs Fixup the rest of the tests in the compiler 2014-01-07 23:51:38 -08:00
macros.rs Another round of test fixes from previous commits 2013-11-10 01:37:12 -08:00
mod.rs Rewrite channels yet again for upgradeability 2014-02-11 16:32:00 -08:00
rtio.rs Expose whether event loops have active I/O 2014-02-12 09:46:31 -08:00
task.rs Don't require an allocation for on_exit messages 2014-02-13 20:29:47 -08:00
thread.rs std: Add init and uninit to mem. Replace direct intrinsic usage 2014-02-09 00:17:40 -08:00
thread_local_storage.rs Replace C types with Rust types in libstd, closes #7313 2014-01-22 19:20:47 +01:00
unwind.rs Rewrite channels yet again for upgradeability 2014-02-11 16:32:00 -08:00
util.rs std: Remove io::io_error 2014-02-03 09:32:33 -08:00