bors 07183ea6e7 auto merge of #7677 : alexcrichton/rust/tls-gc, r=pcwalton
cc #6004 and #3273

This is a rewrite of TLS to get towards not requiring `@` when using task local storage. Most of the rewrite is straightforward, although there are two caveats:

1. Changing `local_set` to not require `@` is blocked on #7673
2. The code in `local_pop` is some of the most unsafe code I've written. A second set of eyes should definitely scrutinize it...

The public-facing interface currently hasn't changed, although it will have to change because `local_data::get` cannot return `Option<T>`, nor can it return `Option<&T>` (the lifetime isn't known). This will have to be changed to be given a closure which yield `&T` (or as an Option). I didn't do this part of the api rewrite in this pull request as I figured that it could wait until when `@` is fully removed.

This also doesn't deal with the issue of using something other than functions as keys, but I'm looking into using static slices (as mentioned in the issues).
2013-07-11 19:52:37 -07:00
..
2013-07-08 13:55:11 -04:00
2013-07-11 15:21:29 -04:00
2013-06-27 15:06:19 +02:00
2013-06-27 15:06:19 +02:00
2013-07-11 15:21:29 -04:00
2013-07-07 19:51:13 -04:00
2013-07-07 19:51:13 -04:00
2013-07-08 13:55:11 -04:00
2013-07-07 22:51:09 +12:00
2013-07-07 22:51:09 +12:00
2013-07-07 23:05:03 +12:00