On Tue, May 21, 2013 at 8:03 AM, Lucian Branescu <[email protected]> wrote: > Rust has task-local storage, which sounds like what you're looking for. This > example (http://bubblingbeebles.livejournal.com/111016.html) is a bit old, > I'm not sure it would still work. > > > On 21 May 2013 09:16, Kim HyunKang <[email protected]> wrote: >> >> Hello list. >> >> I'm a Rust newbie and I'm really excited about this language >> >> As a process of knowing each other, I'm implementing a libgit2 bindings >> for Rust. (You can look at the code at here: >> https://github.com/kimhyunkang/git2-rs though it has virtually no features >> for now.) >> >> libgit2 uses thread local storage to store and retrieve error info from >> last library call. But the Rust tutorial states that tasks are considered >> green threads. As far as I can understand, that means tasks are not mapped >> 1:1 to OS thread, thus making thread-local storage unsafe for direct use. >> >> Then I rememberd errno, another thread local storage that I know of, and >> checked the source code to find out how core::os handles errno. But >> core::os::errno seems to just call __errno without locking or blocking >> anything. >> >> So, the question is: >> >> How does the runtime makes sure that errno is not overwritten by another >> syscall failure? Is it safe to ignore the possibility of another task >> scheduled into the same OS thread? >> >> - kimhyunkang
It's http://static.rust-lang.org/doc/core/local_data.html now. _______________________________________________ Rust-dev mailing list [email protected] https://mail.mozilla.org/listinfo/rust-dev
