Starboard Module Reference: once.h
Stay organized with collections
Save and categorize content based on your preferences.
Onces represent initializations that should only ever happen once per process,
in a thread-safe way.
Macros
SB_ONCE_MAX_SIZE
Max size of the SbOnceControl type.
Typedefs
SbOnceControl
An opaque handle to a once control type with reserved memory buffer of size
SB_ONCE_MAX_SIZE and aligned at void pointer type.
Definition
typedef union SbOnceControl SbOnceControl
SbOnceInitRoutine
Function pointer type for methods that can be called via the SbOnce() system.
Definition
typedef void(* SbOnceInitRoutine) (void)
Functions
SbOnce
Thread-safely runs init_routine
only once.
If this once_control
has not run a function yet, this function runs
init_routine
in a thread-safe way and then returns true
.
If SbOnce() was called with once_control
before, the function returns
true
immediately.
If once_control
or init_routine
is invalid, the function returns
false
.
Declaration
bool SbOnce(SbOnceControl *once_control, SbOnceInitRoutine init_routine)
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2024-06-29 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-06-29 UTC."],[[["`SbOnce` ensures a specific initialization routine (`init_routine`) is executed only once per process in a thread-safe manner."],["`SbOnceControl` is an opaque handle used by `SbOnce` to track whether the initialization has already occurred."],["`SbOnceInitRoutine` is a function pointer type that defines the signature of the initialization function."],["The `SbOnce` function returns `true` if the `init_routine` was executed or had already been executed, and it returns `false` if the parameters provided were invalid."]]],["The core content defines thread-safe, one-time initialization mechanisms. `SbOnceControl` is an opaque handle with a maximum size defined by `SB_ONCE_MAX_SIZE`. `SbOnceInitRoutine` is a function pointer type for initialization methods. The `SbOnce` function executes the provided `init_routine` once, ensuring thread safety. It returns `true` if the `init_routine` either ran or had already run. It returns `false` for invalid inputs.\n"]]