///|
type WaitGroup
///|
#borrow(status)
extern "C" fn native_wait_group_new(status : Ref[Int]) -> WaitGroup = "sync_wait_group_new"
///|
#borrow(value)
extern "C" fn native_wait_group_share(value : WaitGroup) -> WaitGroup = "sync_wait_group_share"
///|
#borrow(value, status)
extern "C" fn native_wait_group_add(
value : WaitGroup,
delta : Int,
status : Ref[Int],
) -> Bool = "sync_wait_group_add"
///|
#borrow(value, status)
extern "C" fn native_wait_group_wait(
value : WaitGroup,
status : Ref[Int],
) -> Unit = "sync_wait_group_wait"