mirror of
https://github.com/mpv-player/mpv
synced 2024-12-23 15:22:09 +00:00
2b26517ef7
This was part of osdep/threads.c out of laziness. But it doesn't contain anything OS dependent. Note that the rest of threads.c actually isn't all that OS dependent either (just some minor ifdeffery to work around the lack of clock_gettime() on OSX).
24 lines
1.0 KiB
C
24 lines
1.0 KiB
C
#ifndef MP_DISPATCH_H_
|
|
#define MP_DISPATCH_H_
|
|
|
|
typedef void (*mp_dispatch_fn)(void *data);
|
|
struct mp_dispatch_queue;
|
|
|
|
struct mp_dispatch_queue *mp_dispatch_create(void *talloc_parent);
|
|
void mp_dispatch_set_wakeup_fn(struct mp_dispatch_queue *queue,
|
|
void (*wakeup_fn)(void *wakeup_ctx),
|
|
void *wakeup_ctx);
|
|
void mp_dispatch_enqueue(struct mp_dispatch_queue *queue,
|
|
mp_dispatch_fn fn, void *fn_data);
|
|
void mp_dispatch_enqueue_autofree(struct mp_dispatch_queue *queue,
|
|
mp_dispatch_fn fn, void *fn_data);
|
|
void mp_dispatch_run(struct mp_dispatch_queue *queue,
|
|
mp_dispatch_fn fn, void *fn_data);
|
|
void mp_dispatch_queue_process(struct mp_dispatch_queue *queue, double timeout);
|
|
void mp_dispatch_suspend(struct mp_dispatch_queue *queue);
|
|
void mp_dispatch_resume(struct mp_dispatch_queue *queue);
|
|
void mp_dispatch_lock(struct mp_dispatch_queue *queue);
|
|
void mp_dispatch_unlock(struct mp_dispatch_queue *queue);
|
|
|
|
#endif
|