Open ian-h-chamberlain opened 1 year ago
Hmm, the presence of those third-party crates is interesting. Unless Rust's lib-team let's us add a system specific module, I don't know if we can really depend on a system-agnostic implementation (that would be the main goal of a std
PR). Maybe we should try to pass the functionality to third party crates in the form of pthread-3ds
functions and depend on those (at least for now).
The problem is that we can't really depend on some stranger's code for long. At this point I wonder, should we really discard the idea of including that functionality directly in ctru-rs
? It's a very complex issue...
Ok, I just opened https://github.com/rust-lang/libs-team/issues/195 ! @AzureMarker not sure if you want to close https://github.com/rust-lang/libs-team/issues/71 since I think this proposal would probably make it unnecessary.
Feel free to take a look / comment, hopefully we can get some feedback from libs team and try to move this along!
~Meanwhile I think I will try to add some more scheduling APIs to libc
since we're probably gonna need them one way or another.~ nvm, I forgot the names are different, linux has pthread_attr_setprocessorid_np
but we have pthread_attr_setprocessorid_np
instead. I can implement it in terms of that
Originally posted by @Meziu in https://github.com/rust3ds/ctru-rs/discussions/97#discussioncomment-5295698
I wasn't sure where else to make an issue but I thought this repo seemed sort of sensible to track progress on the upstream threads proposal and related changes.
It will probably take a little while, but I plan to revisit the original thread proposal with the Rust team and see if we can come to some kind of middle ground that doesn't result in implementing a huge API surface in
std
just to support our platform.As a brief summary of what's happened:
std
: https://github.com/rust-lang/rust/pull/98514At this point, this is my rough plan:
std
changes and just rely on them insteadstd
still seems like a better option, rewrite the API proposal to be more generic (less 3DS-focused) and address some of the discussion concerns that have come up. I will probably end up mentioning the above crates as prior art in this space too.libc
APIs to implement new affinity APIs forstd
ctru-rs
examples and features to match the newstd
API.Phew! This has been a long time coming so hopefully we can finally put it to rest somewhere. Also let me know if you think this issue makes more sense to live on
ctru-rs
and I can transfer, it's kind of broad so I wasn't sure the best place to put it.