rust/src/libstd
bors 97ec69fb95 Auto merge of #32325 - alexcrichton:panic-once, r=aturon
std: Rewrite Once with poisoning

This commit rewrites the `std::sync::Once` primitive with poisoning in mind in
light of #31688. Currently a panic in the initialization closure will cause
future initialization closures to run, but the purpose of a Once is usually to
initialize some global state so it's highly likely that the global state is
corrupt if a panic happened. The same strategy of a mutex is taken where a panic
is propagated by default.

A new API, `call_once_force`, was added to subvert panics like is available on
Mutex as well (for when panicking is handled internally).

Adding this support was a significant enough change to the implementation that
it was just completely rewritten from scratch, primarily to avoid using a
`StaticMutex` which needs to have `destroy()` called on it at some point (a pain
to do).

Closes #31688
2016-03-26 15:14:29 -07:00
..
collections Auto merge of #32058 - pczarn:hashmap-initial-refactoring, r=apasel422 2016-03-22 21:21:45 -07:00
ffi Auto merge of #32454 - eddyb:rollup, r=eddyb 2016-03-23 12:33:04 -07:00
io Rollup merge of #32276 - brson:doc, r=alexcrichton 2016-03-24 10:37:23 -04:00
net Auto merge of #32454 - eddyb:rollup, r=eddyb 2016-03-23 12:33:04 -07:00
num fallout in existing tests 2016-03-25 06:45:42 -04:00
os Auto merge of #31986 - ashleysommer:emscripten_fixes, r=alexcrichton 2016-03-08 01:04:36 +00:00
prelude End stdlib module summaries with a full stop. 2016-03-04 17:37:11 -05:00
rand std: restructure rand os code into sys modules 2016-02-17 16:21:32 -08:00
sync std: Rewrite Once with poisoning 2016-03-26 10:33:14 -07:00
sys Fixup #32476 2016-03-26 13:42:05 +05:30
thread Fix unsound behaviour with null characters in thread names (issue #32475) 2016-03-25 06:14:03 +01:00
time Rollup merge of #32448 - sfackler:time-augmented-assignment, r=alexcrichton 2016-03-26 13:42:03 +05:30
ascii.rs Rollup merge of #32387 - alexcrichton:ascii-test, r=aturon 2016-03-26 20:35:49 +05:30
build.rs std: Link to gcc_s on NetBSD 2016-03-21 11:23:44 -07:00
Cargo.toml rustbuild: Sync some Cargo.toml/lib.rs dependencies 2016-02-21 09:49:13 -08:00
env.rs doc: "ref" not needed in the example 2016-02-28 09:37:45 +02:00
error.rs Impl Error for Box<T: Error> 2016-01-23 09:03:09 +01:00
fs.rs try! -> ? 2016-03-22 22:01:37 -05:00
lib.rs sprinkle feature gates here and there 2016-03-22 22:02:47 -05:00
macros.rs mk: Distribute fewer TARGET_CRATES 2016-03-07 13:05:12 -08:00
memchr.rs Minor spelling fixes 2016-02-09 11:52:39 -05:00
panic.rs try! -> ? 2016-03-22 22:01:37 -05:00
panicking.rs Make set_hook take a Box<Fn> 2016-03-15 20:51:48 -07:00
path.rs std: Clean out deprecated APIs 2016-03-12 12:31:13 -08:00
primitive_docs.rs doc: small char improvements 2016-03-22 08:29:55 +02:00
process.rs Rollup merge of #32257 - alexcrichton:fix-status-stdin, r=aturon 2016-03-26 09:07:21 +05:30
rt.rs Fix warnings when compiling stdlib with --test 2015-12-29 16:07:01 +01:00
rtdeps.rs bootstrap: Add directives to not double-link libs 2016-02-11 11:12:32 -08:00