Alex Crichton be11aa6d70 std: Second pass stabilization for thread_local
This commit performs a second pass over the `std::thread_local` module. Most of
the functionality remains explicitly unstable, but the specific actions taken
were:

* `thread_local` is now stable
* `thread_local!` is now stable
* `thread_local::Key` is now stable
* `thread_local::Key::with` is now stable
* `thread_local::Key::destroyed` is deprecated in favor of a more general
  `state` function
* `thread_local::Key::state` was added to query the three states that a key can
  be in: uninitialized, valid, or destroyed. This function, and the
  corresponding `State` enum, are both marked unstable as we may wish to expand
  it later on.
* `thread_local::scoped` is entirely unstable. There hasn't been a whole lot of
  usage of this module in the standard distribution, so it remains unstable at
  this time.

Note that while the structure `Key` is marked stable, it is currently forced to
expose all of its implementation details due to the use of
construction-via-macro. The use of construction-via-macro is currently required
in order to place the `#[thread_local]` attribute on static in a
platform-specific manner. These stability attributes were assigned assuming that
it will be acceptable to tweak the implementation of `Key` in the future.
2014-12-31 15:50:28 -08:00
..
2014-12-30 16:49:27 +01:00
2014-12-31 08:33:13 -08:00
2014-12-29 23:55:49 -08:00
2014-12-30 17:06:08 -08:00
2014-12-30 13:06:25 +13:00
2014-12-31 10:20:31 -08:00
2014-12-30 17:06:08 -08:00
2014-12-30 17:06:08 -08:00
2014-12-30 17:06:08 -08:00
2014-12-30 17:06:08 -08:00
2014-12-30 17:06:08 -08:00
2014-12-30 15:04:43 -08:00
2014-12-30 17:06:08 -08:00
2014-12-31 08:33:13 -08:00
2014-12-30 15:04:43 -08:00