mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-04 13:29:59 -05:00
core: add assert macros for verifying calling context
This adds pa_assert_io_context() and pa_assert_ctl_context() in addition to a few related macros. When called they will fail when the current execution context is not IO resp. not control context. (aka 'thread' context vs. 'main' context)
This commit is contained in:
parent
17d57415f5
commit
9a95fe49c8
9 changed files with 234 additions and 31 deletions
|
|
@ -42,6 +42,7 @@ typedef struct pa_device_port pa_device_port;
|
|||
#include <pulsecore/rtpoll.h>
|
||||
#include <pulsecore/card.h>
|
||||
#include <pulsecore/queue.h>
|
||||
#include <pulsecore/thread-mq.h>
|
||||
|
||||
#define PA_MAX_INPUTS_PER_SINK 32
|
||||
|
||||
|
|
@ -343,4 +344,10 @@ pa_usec_t pa_sink_get_latency_within_thread(pa_sink *s);
|
|||
pa_device_port *pa_device_port_new(const char *name, const char *description, size_t extra);
|
||||
void pa_device_port_free(pa_device_port *p);
|
||||
|
||||
/* Verify that we called in IO context (aka 'thread context), or that
|
||||
* the sink is not yet set up, i.e. the thread not set up yet. See
|
||||
* pa_assert_io_context() in thread-mq.h for more information. */
|
||||
#define pa_sink_assert_io_context(s) \
|
||||
pa_assert(pa_thread_mq_get() || !PA_SINK_IS_LINKED((s)->state))
|
||||
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue