pub enum SyncFenceRegistryRequest {
CreateSyncFences {
num_fences: u32,
responder: SyncFenceRegistryCreateSyncFencesResponder,
},
RegisterSignaledEvent {
fence_key: SyncFenceKey,
event: Event,
control_handle: SyncFenceRegistryControlHandle,
},
}
Expand description
This protocol is used to create Linux compatible fences for Fuchsia.
This protocol is “closed”, but for this protocol we don’t require cross-version source or ABI compatibility.
The registry service guarantees that the timestamp of event signal operations are accurately recorded. The timestamps are only available inside Starnix.
Any errors in methods result in channel closure.
Variants§
CreateSyncFences
Batch create SyncFences. There is one-to-one correspondance between
sync_fence_keys
and events
. Each event is treated as the first
synchronization object that is backing a SyncFence. There may be
other events added later through SYNC_IOC_MERGE ioctl.
Lifetime of SyncFence is defined by how long the client holds SyncFenceKey.
RegisterSignaledEvent
Registers an event
for this SyncFenceKey. This event is expected to
be signaled iff all the underlying events associated with this
SyncFence are signaled.
If fence_key
is not found in the registry of created SyncFenceKeys or
dropped, event
is signaled immediately.
Implementations§
source§impl SyncFenceRegistryRequest
impl SyncFenceRegistryRequest
pub fn into_create_sync_fences( self ) -> Option<(u32, SyncFenceRegistryCreateSyncFencesResponder)>
pub fn into_register_signaled_event( self ) -> Option<(SyncFenceKey, Event, SyncFenceRegistryControlHandle)>
sourcepub fn method_name(&self) -> &'static str
pub fn method_name(&self) -> &'static str
Name of the method defined in FIDL