fune/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
gkrust_utils
gtest
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
nserror
nsstring
xpcom Bug 1843568 - Part 1: Add a rust_sync attribute to XPIDL, r=xpcom-reviewers,barret 2023-07-20 17:39:03 +00:00