gecko-dev/xpcom/rust
Nika Layzell 166ac8f00a Bug 1843568 - Part 1: Add a `rust_sync` attribute to XPIDL, r=xpcom-reviewers,barret
This attribute indicates that all implementations of the interface must
implement the `Sync` trait in Rust, meaning that they're safe to share between
threads. This will make storing these values in threadsafe types in Rust more
ergonomic.

To implement this, the vtable types were changed to be `&'static` references
rather than raw pointers. This should be OK as they are always valid non-null
pointers to the VTable, and avoids the need for manual `unsafe impl`s for the
relevant interfaces.

Other interfaces will remain non-send and non-sync due to the marker type.

Differential Revision: https://phabricator.services.mozilla.com/D183590
2023-07-20 17:39:03 +00:00
..
gecko_logger Bug 1825696 - Update in-tree crates to env_logger 0.10. r=emilio 2023-03-31 07:20:15 +00:00
gkrust_utils Bug 1802689 - Add missing licenses info in Cargo.toml r=mhoye,necko-reviewers,kershaw,valentin 2022-12-13 09:14:44 +00:00
gtest Bug 1789902 - Part 2: Use XPCOM static components instead of Services in Rust, r=xpcom-reviewers,necko-reviewers,barret,valentin 2022-09-13 13:47:13 +00:00
malloc_size_of_derive Bug 1836869 - Switch malloc_size_of_derive to syn 2/synstructure 0.13. r=xpcom-reviewers,nika 2023-06-07 20:45:39 +00:00
moz_task Bug 1825360 - Remove the NS_DISPATCH_SYNC flag, r=necko-reviewers,geckoview-reviewers,media-playback-reviewers,karlt,jesup,m_kato,emilio 2023-03-30 16:53:51 +00:00
nserror Bug 1751331 - Use the mozbuild crate in nserror. r=xpcom-reviewers,nika 2022-01-25 21:29:53 +00:00
nsstring Bug 1825565 - Fix nsstring rust doc warnings r=emilio DONTBUILD 2023-03-30 15:00:27 +00:00
xpcom Bug 1843568 - Part 1: Add a `rust_sync` attribute to XPIDL, r=xpcom-reviewers,barret 2023-07-20 17:39:03 +00:00