rust/src/libstd
Alex Crichton 9668ab58f3 std: Move libnative task count bookkeeping to std
When using tasks in Rust, the expectation is that the runtime does not exit
before all tasks have exited. This is enforced in libgreen through the
`SchedPool` type, and it is enforced in libnative through a `bookkeeping` module
and a global count/mutex pair. Unfortunately, this means that a process which
originates with libgreen will not wait for spawned native tasks.

In order to fix this problem, the bookkeeping module was moved from libnative to
libstd so the runtime itself can wait for native tasks to exit. Green tasks do
not manage themselves through this bookkeeping module, but native tasks will
continue to manage themselves through this module.

Closes #12684
2014-03-05 21:48:08 -08:00
..
comm std: Change assert_eq!() to use {} instead of {:?} 2014-02-28 23:01:54 -08:00
fmt std: Switch stdout/stderr to buffered by default 2014-03-01 10:06:20 -08:00
hash libstd: Add some functionality to Vec<T> 2014-03-01 22:40:52 -08:00
io std: Switch stdout/stderr to buffered by default 2014-03-01 10:06:20 -08:00
num std: Change assert_eq!() to use {} instead of {:?} 2014-02-28 23:01:54 -08:00
path std: Change assert_eq!() to use {} instead of {:?} 2014-02-28 23:01:54 -08:00
rand std: Change assert_eq!() to use {} instead of {:?} 2014-02-28 23:01:54 -08:00
rt std: Move libnative task count bookkeeping to std 2014-03-05 21:48:08 -08:00
sync std: Change assert_eq!() to use {} instead of {:?} 2014-02-28 23:01:54 -08:00
unstable std: Small cleanup and test improvement 2014-02-27 12:03:57 -08:00
any.rs Cleaned up std::any 2014-03-04 21:10:23 +01:00
ascii.rs std: Change assert_eq!() to use {} instead of {:?} 2014-02-28 23:01:54 -08:00
bool.rs std: Change assert_eq!() to use {} instead of {:?} 2014-02-28 23:01:54 -08:00
c_str.rs std: Move raw to std::raw 2014-02-23 01:07:53 -08:00
cast.rs std: Move raw to std::raw 2014-02-23 01:07:53 -08:00
cell.rs std: Change assert_eq!() to use {} instead of {:?} 2014-02-28 23:01:54 -08:00
char.rs Remove all ToStr impls, add Show impls 2014-02-23 20:51:56 -08:00
cleanup.rs std: Move raw to std::raw 2014-02-23 01:07:53 -08:00
clone.rs 'borrowed pointer' -> 'reference' 2014-01-07 18:49:13 -08:00
cmp.rs std: Change assert_eq!() to use {} instead of {:?} 2014-02-28 23:01:54 -08:00
container.rs
default.rs libstd: Remove all support code related to @mut 2014-01-03 14:02:00 -08:00
from_str.rs
gc.rs Fix @str removal tests. 2014-02-02 02:58:57 +11:00
intrinsics.rs std: Change assert_eq!() to use {} instead of {:?} 2014-02-28 23:01:54 -08:00
iter.rs std: Change assert_eq!() to use {} instead of {:?} 2014-02-28 23:01:54 -08:00
kinds.rs Fix all code examples 2014-02-14 23:49:22 -08:00
lib.rs doc: use the newer favicon 2014-03-04 18:37:51 +01:00
libc.rs native: Move from usleep() to nanosleep() 2014-03-05 09:11:10 -08:00
local_data.rs std: Move intrinsics to std::intrinsics. 2014-02-23 01:07:53 -08:00
logging.rs std: Switch stdout/stderr to buffered by default 2014-03-01 10:06:20 -08:00
macros.rs std: Change assert_eq!() to use {} instead of {:?} 2014-02-28 23:01:54 -08:00
managed.rs std: Move raw to std::raw 2014-02-23 01:07:53 -08:00
mem.rs std: Move intrinsics to std::intrinsics. 2014-02-23 01:07:53 -08:00
ops.rs move extra::test to libtest 2014-02-20 16:03:58 +08:00
option.rs Remove all ToStr impls, add Show impls 2014-02-23 20:51:56 -08:00
os.rs std: Change assert_eq!() to use {} instead of {:?} 2014-02-28 23:01:54 -08:00
owned.rs librustc: Implement placement box for GC and unique pointers. 2014-01-09 16:05:34 -08:00
prelude.rs Cleaned up std::any 2014-03-04 21:10:23 +01:00
ptr.rs std: Change assert_eq!() to use {} instead of {:?} 2014-02-28 23:01:54 -08:00
raw.rs Cleaned up std::any 2014-03-04 21:10:23 +01:00
rc.rs std: clean up ptr a bit 2014-02-15 12:11:41 -05:00
reference.rs Cleaned up imports per coding standards. 2014-02-07 09:59:19 -08:00
reflect.rs std: Move raw to std::raw 2014-02-23 01:07:53 -08:00
repr.rs std: Move raw to std::raw 2014-02-23 01:07:53 -08:00
result.rs Remove all ToStr impls, add Show impls 2014-02-23 20:51:56 -08:00
rtdeps.rs Invoke gcc with -nodefaultlibs 2014-02-14 08:07:46 -08:00
str.rs std: Change assert_eq!() to use {} instead of {:?} 2014-02-28 23:01:54 -08:00
task.rs Clean up std::task docs, make TaskBuilder a real builder 2014-02-16 15:34:02 -08:00
to_str.rs Remove all ToStr impls, add Show impls 2014-02-23 20:51:56 -08:00
tuple.rs std: Change assert_eq!() to use {} instead of {:?} 2014-02-28 23:01:54 -08:00
unicode.rs
unit.rs Add some missing Show implementations in libstd 2014-02-13 12:54:01 -08:00
vec_ng.rs std: add reserve_additional and an Extendable impl to Vec. 2014-03-04 08:05:18 +11:00
vec.rs make MutItems iterator sound again 2014-03-04 18:53:57 -05:00