apple_cf/ffi/
dispatch_extras.rs1#![allow(missing_docs)]
2
3use core::ffi::c_void;
4
5extern "C" {
6 pub fn acf_dispatch_async_f(
7 queue: *mut c_void,
8 context: *mut c_void,
9 work: extern "C" fn(*mut c_void),
10 );
11 pub fn acf_dispatch_async_and_wait_f(
12 queue: *mut c_void,
13 context: *mut c_void,
14 work: extern "C" fn(*mut c_void),
15 );
16 pub fn acf_dispatch_apply_f(
17 iterations: usize,
18 queue: *mut c_void,
19 context: *mut c_void,
20 work: extern "C" fn(usize, *mut c_void),
21 );
22
23 pub fn acf_dispatch_group_create() -> *mut c_void;
24 pub fn acf_dispatch_group_enter(group: *mut c_void);
25 pub fn acf_dispatch_group_leave(group: *mut c_void);
26 pub fn acf_dispatch_group_wait(group: *mut c_void, timeout_ms: i64) -> bool;
27
28 pub fn acf_dispatch_semaphore_create(value: i64) -> *mut c_void;
29 pub fn acf_dispatch_semaphore_signal(semaphore: *mut c_void) -> i64;
30 pub fn acf_dispatch_semaphore_wait(semaphore: *mut c_void, timeout_ms: i64) -> bool;
31
32 pub fn acf_dispatch_source_timer_create(interval_ms: u64, leeway_ms: u64) -> *mut c_void;
33 pub fn acf_dispatch_source_timer_resume(source: *mut c_void);
34 pub fn acf_dispatch_source_timer_cancel(source: *mut c_void);
35 pub fn acf_dispatch_source_timer_fire_count(source: *mut c_void) -> u64;
36}