PipeWire  0.3.27
thread-loop.h File Reference

Go to the source code of this file.

Data Structures

struct  pw_thread_loop_events
 Thread loop events. More...
 

Macros

#define PW_VERSION_THREAD_LOOP_EVENTS   0
 

Functions

struct pw_thread_looppw_thread_loop_new (const char *name, const struct spa_dict *props)
 Make a new thread loop with the given name and optional properties. More...
 
struct pw_thread_looppw_thread_loop_new_full (struct pw_loop *loop, const char *name, const struct spa_dict *props)
 Make a new thread loop with the given loop, name and optional properties. More...
 
void pw_thread_loop_destroy (struct pw_thread_loop *loop)
 Destroy a thread loop. More...
 
void pw_thread_loop_add_listener (struct pw_thread_loop *loop, struct spa_hook *listener, const struct pw_thread_loop_events *events, void *data)
 Add an event listener. More...
 
struct pw_looppw_thread_loop_get_loop (struct pw_thread_loop *loop)
 Get the loop implementation of the thread loop. More...
 
int pw_thread_loop_start (struct pw_thread_loop *loop)
 Start the thread loop. More...
 
void pw_thread_loop_stop (struct pw_thread_loop *loop)
 Stop the thread loop. More...
 
void pw_thread_loop_lock (struct pw_thread_loop *loop)
 Lock the loop. More...
 
void pw_thread_loop_unlock (struct pw_thread_loop *loop)
 Unlock the loop. More...
 
void pw_thread_loop_wait (struct pw_thread_loop *loop)
 Release the lock and wait until some thread calls pw_thread_loop_signal. More...
 
int pw_thread_loop_timed_wait (struct pw_thread_loop *loop, int wait_max_sec)
 Release the lock and wait a maximum of 'wait_max_sec' seconds until some thread calls pw_thread_loop_signal or time out. More...
 
int pw_thread_loop_get_time (struct pw_thread_loop *loop, struct timespec *abstime, int64_t timeout)
 Get a struct timespec suitable for pw_thread_loop_timed_wait_full. More...
 
int pw_thread_loop_timed_wait_full (struct pw_thread_loop *loop, struct timespec *abstime)
 Release the lock and wait up to abstime until some thread calls pw_thread_loop_signal. More...
 
void pw_thread_loop_signal (struct pw_thread_loop *loop, bool wait_for_accept)
 Signal all threads waiting with pw_thread_loop_wait. More...
 
void pw_thread_loop_accept (struct pw_thread_loop *loop)
 Signal all threads executing pw_thread_loop_signal with wait_for_accept. More...
 
bool pw_thread_loop_in_thread (struct pw_thread_loop *loop)
 Check if inside the thread. More...
 

Macro Definition Documentation

◆ PW_VERSION_THREAD_LOOP_EVENTS

#define PW_VERSION_THREAD_LOOP_EVENTS   0

Function Documentation

◆ pw_thread_loop_accept()

void pw_thread_loop_accept ( struct pw_thread_loop loop)

Signal all threads executing pw_thread_loop_signal with wait_for_accept.

◆ pw_thread_loop_add_listener()

void pw_thread_loop_add_listener ( struct pw_thread_loop loop,
struct spa_hook *  listener,
const struct pw_thread_loop_events events,
void *  data 
)

Add an event listener.

◆ pw_thread_loop_destroy()

void pw_thread_loop_destroy ( struct pw_thread_loop loop)

Destroy a thread loop.

◆ pw_thread_loop_get_loop()

struct pw_loop* pw_thread_loop_get_loop ( struct pw_thread_loop loop)

Get the loop implementation of the thread loop.

References pw_loop::loop.

◆ pw_thread_loop_get_time()

int pw_thread_loop_get_time ( struct pw_thread_loop loop,
struct timespec *  abstime,
int64_t  timeout 
)

Get a struct timespec suitable for pw_thread_loop_timed_wait_full.

Since: 0.3.7

◆ pw_thread_loop_in_thread()

bool pw_thread_loop_in_thread ( struct pw_thread_loop loop)

Check if inside the thread.

◆ pw_thread_loop_lock()

void pw_thread_loop_lock ( struct pw_thread_loop loop)

Lock the loop.

This ensures exclusive ownership of the loop

◆ pw_thread_loop_new()

struct pw_thread_loop* pw_thread_loop_new ( const char *  name,
const struct spa_dict props 
)

Make a new thread loop with the given name and optional properties.

◆ pw_thread_loop_new_full()

struct pw_thread_loop* pw_thread_loop_new_full ( struct pw_loop loop,
const char *  name,
const struct spa_dict props 
)

Make a new thread loop with the given loop, name and optional properties.

When loop is NULL, a new loop will be created.

◆ pw_thread_loop_signal()

void pw_thread_loop_signal ( struct pw_thread_loop loop,
bool  wait_for_accept 
)

Signal all threads waiting with pw_thread_loop_wait.

◆ pw_thread_loop_start()

int pw_thread_loop_start ( struct pw_thread_loop loop)

Start the thread loop.

◆ pw_thread_loop_stop()

void pw_thread_loop_stop ( struct pw_thread_loop loop)

Stop the thread loop.

◆ pw_thread_loop_timed_wait()

int pw_thread_loop_timed_wait ( struct pw_thread_loop loop,
int  wait_max_sec 
)

Release the lock and wait a maximum of 'wait_max_sec' seconds until some thread calls pw_thread_loop_signal or time out.

◆ pw_thread_loop_timed_wait_full()

int pw_thread_loop_timed_wait_full ( struct pw_thread_loop loop,
struct timespec *  abstime 
)

Release the lock and wait up to abstime until some thread calls pw_thread_loop_signal.

Use pw_thread_loop_get_time to make a timeout. Since: 0.3.7

◆ pw_thread_loop_unlock()

void pw_thread_loop_unlock ( struct pw_thread_loop loop)

Unlock the loop.

◆ pw_thread_loop_wait()

void pw_thread_loop_wait ( struct pw_thread_loop loop)

Release the lock and wait until some thread calls pw_thread_loop_signal.