From 2b26517ef705c4043419e2e70dacd7760af1137e Mon Sep 17 00:00:00 2001 From: wm4 Date: Wed, 23 Apr 2014 20:37:57 +0200 Subject: dispatch: move into its own source file 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). --- misc/dispatch.h | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 misc/dispatch.h (limited to 'misc/dispatch.h') diff --git a/misc/dispatch.h b/misc/dispatch.h new file mode 100644 index 0000000000..96a5d7cf4b --- /dev/null +++ b/misc/dispatch.h @@ -0,0 +1,23 @@ +#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 -- cgit v1.2.3