Port `steed`'s thread support
sunfishcode opened this issue · 2 comments
Full threads support will be a big project, but a smaller step we might take which might not be too huge would be to port steed
's thread support, which is described as "minimal", but reportedly complete enough for basic usage and supporting #[test]
.
Specifically, the main parts are:
- the
pthread_*
functions in https://github.com/japaric/steed/blob/master/src/libc/mod.rs - platform-specific code in https://github.com/japaric/steed/tree/master/src/libc/internal
The idea would be to just use these low-level pieces, and reuse std::thread::Thread
as-is, and not steed
's Thread
re-implementation.
I'm ultimately not sure if this will work, but if anyone wants to try this, I'd be happy to mentor and we can explore.
I'm looking into threading support.
Threads are now implemented in #25. I learned several things from looking at steed's code, though I ultimately ended up rewriting everything. In Mustang I'm aiming to do as much in Rust and as little in assembly as possible, and in particular, avoid having return addresses into assembly code in Rust stack frames.