]> git.lizzy.rs Git - rust.git/commit
auto merge of #14886 : alexcrichton/rust/rt-improvements, r=brson
authorbors <bors@rust-lang.org>
Thu, 26 Jun 2014 19:46:25 +0000 (19:46 +0000)
committerbors <bors@rust-lang.org>
Thu, 26 Jun 2014 19:46:25 +0000 (19:46 +0000)
commit4c33a14cc546ddacd5398cebf57aa5ac574cfea7
tree21d47ac21cd9785976f1551a459df6e033f37712
parentb20f968ed2a4808f98ffce52ce95398009565ece
parent7d756e44a96c1e28f63cab1ea328d01984ac07d2
auto merge of #14886 : alexcrichton/rust/rt-improvements, r=brson

Most of the comments are available on the Task structure itself, but this commit
is aimed at making FFI-style usage of Rust tasks a little nicer.

Primarily, this commit enables re-use of tasks across multiple invocations. The
method `run` will no longer unconditionally destroy the task itself. Rather, the
task will be internally re-usable if the closure specified did not fail. Once a
task has failed once it is considered poisoned and it can never be used again.

Along the way I tried to document shortcomings of the current method of tearing
down a task, opening a few issues as well. For now none of the behavior is a
showstopper, but it's useful to acknowledge it. Also along the way I attempted
to remove as much `unsafe` code as possible, opting for safer abstractions.