Seems like objc2 crate uses same approach (MainThreadMarker).