PulseAudio 16.1

thread-mainloop.h
Go to the documentation of this file.
1#ifndef foothreadmainloophfoo
2#define foothreadmainloophfoo
3
4/***
5 This file is part of PulseAudio.
6
7 Copyright 2006 Lennart Poettering
8 Copyright 2006 Pierre Ossman <ossman@cendio.se> for Cendio AB
9
10 PulseAudio is free software; you can redistribute it and/or modify
11 it under the terms of the GNU Lesser General Public License as published
12 by the Free Software Foundation; either version 2.1 of the License,
13 or (at your option) any later version.
14
15 PulseAudio is distributed in the hope that it will be useful, but
16 WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 General Public License for more details.
19
20 You should have received a copy of the GNU Lesser General Public License
21 along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
22***/
23
24#include <pulse/mainloop-api.h>
25#include <pulse/cdecl.h>
26#include <pulse/version.h>
27
28PA_C_DECL_BEGIN
29
248 typedef struct pa_threaded_mainloop pa_threaded_mainloop;
249
253 pa_threaded_mainloop *pa_threaded_mainloop_new(void);
254
258 void pa_threaded_mainloop_free(pa_threaded_mainloop* m);
259
261 int pa_threaded_mainloop_start(pa_threaded_mainloop *m);
262
265 void pa_threaded_mainloop_stop(pa_threaded_mainloop *m);
266
273 void pa_threaded_mainloop_lock(pa_threaded_mainloop *m);
274
276 void pa_threaded_mainloop_unlock(pa_threaded_mainloop *m);
277
287 void pa_threaded_mainloop_wait(pa_threaded_mainloop *m);
288
294 void pa_threaded_mainloop_signal(pa_threaded_mainloop *m, int wait_for_accept);
295
300 void pa_threaded_mainloop_accept(pa_threaded_mainloop *m);
301
304 int pa_threaded_mainloop_get_retval(const pa_threaded_mainloop *m);
305
309 pa_mainloop_api* pa_threaded_mainloop_get_api(pa_threaded_mainloop*m);
310
312 int pa_threaded_mainloop_in_thread(pa_threaded_mainloop *m);
313
315 void pa_threaded_mainloop_set_name(pa_threaded_mainloop *m, const char *name);
316
324 void pa_threaded_mainloop_once_unlocked(pa_threaded_mainloop *m, void (*callback)(pa_threaded_mainloop *m, void *userdata),
325 void *userdata);
326
327PA_C_DECL_END
328
329#endif
mainloop-api.h
Main loop abstraction layer.
pa_mainloop_api
An abstract mainloop API vtable.
Definition: mainloop-api.h:87
pa_threaded_mainloop_free
void pa_threaded_mainloop_free(pa_threaded_mainloop *m)
Free a threaded main loop object.
pa_threaded_mainloop_accept
void pa_threaded_mainloop_accept(pa_threaded_mainloop *m)
Accept a signal from the event thread issued with pa_threaded_mainloop_signal().
pa_threaded_mainloop_stop
void pa_threaded_mainloop_stop(pa_threaded_mainloop *m)
Terminate the event loop thread cleanly.
pa_threaded_mainloop_start
int pa_threaded_mainloop_start(pa_threaded_mainloop *m)
Start the event loop thread.
pa_threaded_mainloop_lock
void pa_threaded_mainloop_lock(pa_threaded_mainloop *m)
Lock the event loop object, effectively blocking the event loop thread from processing events.
pa_threaded_mainloop_get_retval
int pa_threaded_mainloop_get_retval(const pa_threaded_mainloop *m)
Return the return value as specified with the main loop's pa_mainloop_quit() routine.
pa_threaded_mainloop
struct pa_threaded_mainloop pa_threaded_mainloop
An opaque threaded main loop object.
Definition: thread-mainloop.h:248
pa_threaded_mainloop_in_thread
int pa_threaded_mainloop_in_thread(pa_threaded_mainloop *m)
Returns non-zero when called from within the event loop thread.
pa_threaded_mainloop_get_api
pa_mainloop_api * pa_threaded_mainloop_get_api(pa_threaded_mainloop *m)
Return the main loop abstraction layer vtable for this main loop.
pa_threaded_mainloop_new
pa_threaded_mainloop * pa_threaded_mainloop_new(void)
Allocate a new threaded main loop object.
pa_threaded_mainloop_unlock
void pa_threaded_mainloop_unlock(pa_threaded_mainloop *m)
Unlock the event loop object, inverse of pa_threaded_mainloop_lock().
pa_threaded_mainloop_set_name
void pa_threaded_mainloop_set_name(pa_threaded_mainloop *m, const char *name)
Sets the name of the thread.
pa_threaded_mainloop_wait
void pa_threaded_mainloop_wait(pa_threaded_mainloop *m)
Wait for an event to be signalled by the event loop thread.
pa_threaded_mainloop_once_unlocked
void pa_threaded_mainloop_once_unlocked(pa_threaded_mainloop *m, void(*callback)(pa_threaded_mainloop *m, void *userdata), void *userdata)
Runs the given callback in the mainloop thread without the lock held.
pa_threaded_mainloop_signal
void pa_threaded_mainloop_signal(pa_threaded_mainloop *m, int wait_for_accept)
Signal all threads waiting for a signalling event in pa_threaded_mainloop_wait().