about summary refs log tree commit diff
path: root/src/rustllvm/ExecutionEngineWrapper.cpp
diff options
context:
space:
mode:
authorAlex Crichton <alex@alexcrichton.com>2014-03-05 10:35:30 -0800
committerAlex Crichton <alex@alexcrichton.com>2014-03-05 21:48:08 -0800
commit9668ab58f338b27d8f53357c7fd4ea3d3f06305e (patch)
treea51174739f9ed9c1910d9676a29a818d49a15009 /src/rustllvm/ExecutionEngineWrapper.cpp
parente6acff828787b9b6c65ef66942f45e58b2f22ad6 (diff)
downloadrust-9668ab58f338b27d8f53357c7fd4ea3d3f06305e.tar.gz
rust-9668ab58f338b27d8f53357c7fd4ea3d3f06305e.zip
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
Diffstat (limited to 'src/rustllvm/ExecutionEngineWrapper.cpp')
0 files changed, 0 insertions, 0 deletions