PipeWire  0.1.4.1
pw_thread_loop Class Reference

PipeWire threaded loop object. More...

Public Member Functions

struct pw_thread_looppw_thread_loop_new (struct pw_loop *loop, const char *name)
 Create a new pw_thread_loop. More...
 
void pw_thread_loop_destroy (struct pw_thread_loop *loop)
 Destroy a threaded loop. More...
 
int pw_thread_loop_start (struct pw_thread_loop *loop)
 Start the thread to handle loop. More...
 
void pw_thread_loop_stop (struct pw_thread_loop *loop)
 Quit the loop and stop its thread. More...
 
void pw_thread_loop_lock (struct pw_thread_loop *loop)
 Lock the mutex associated with loop. More...
 
void pw_thread_loop_unlock (struct pw_thread_loop *loop)
 Unlock the mutex associated with loop. More...
 
void pw_thread_loop_signal (struct pw_thread_loop *loop, bool wait_for_accept)
 Signal the thread. More...
 
void pw_thread_loop_wait (struct pw_thread_loop *loop)
 Wait for the loop thread to call pw_thread_loop_signal() More...
 
void pw_thread_loop_accept (struct pw_thread_loop *loop)
 Signal the loop thread waiting for accept with pw_thread_loop_signal() More...
 
bool pw_thread_loop_in_thread (struct pw_thread_loop *loop)
 Check if we are inside the thread of the loop. More...
 

Detailed Description

PipeWire threaded loop object.

The threaded loop object runs a pw_loop in a separate thread and ensures proper locking is done.

All of the loop callbacks will be executed with the loop lock held.

See also Threaded Loop

Member Function Documentation

◆ pw_thread_loop_accept()

void pw_thread_loop_accept ( struct pw_thread_loop loop)

Signal the loop thread waiting for accept with pw_thread_loop_signal()

Parameters
loopa pw_thread_loop to signal

◆ pw_thread_loop_destroy()

void pw_thread_loop_destroy ( struct pw_thread_loop loop)

Destroy a threaded loop.

References pw_thread_loop_stop().

◆ pw_thread_loop_in_thread()

bool pw_thread_loop_in_thread ( struct pw_thread_loop loop)

Check if we are inside the thread of the loop.

Parameters
loopa pw_thread_loop to signal
Returns
true when called inside the thread of loop.

◆ pw_thread_loop_lock()

void pw_thread_loop_lock ( struct pw_thread_loop loop)

Lock the mutex associated with loop.

Parameters
loopa pw_thread_loop

◆ pw_thread_loop_new()

struct pw_thread_loop * pw_thread_loop_new ( struct pw_loop loop,
const char *  name 
)

Create a new pw_thread_loop.

Parameters
loopthe loop to wrap
namethe name of the thread or NULL
Returns
a newly allocated pw_thread_loop

Make a new pw_thread_loop that will run loop in a thread with name.

After this function you should probably call pw_thread_loop_start() to actually start the thread

References pw_loop_add_hook.

◆ pw_thread_loop_signal()

void pw_thread_loop_signal ( struct pw_thread_loop loop,
bool  wait_for_accept 
)

Signal the thread.

Parameters
loopa pw_thread_loop to signal
wait_for_acceptif we need to wait for accept

Signal the thread of loop. If wait_for_accept is true, this function waits until pw_thread_loop_accept() is called.

◆ pw_thread_loop_start()

int pw_thread_loop_start ( struct pw_thread_loop loop)

Start the thread to handle loop.

Parameters
loopa pw_thread_loop
Returns
SPA_RESULT_OK on success

◆ pw_thread_loop_stop()

void pw_thread_loop_stop ( struct pw_thread_loop loop)

Quit the loop and stop its thread.

Parameters
loopa pw_thread_loop

References pw_loop_signal_event.

Referenced by pw_thread_loop_destroy().

◆ pw_thread_loop_unlock()

void pw_thread_loop_unlock ( struct pw_thread_loop loop)

Unlock the mutex associated with loop.

Parameters
loopa pw_thread_loop

◆ pw_thread_loop_wait()

void pw_thread_loop_wait ( struct pw_thread_loop loop)

Wait for the loop thread to call pw_thread_loop_signal()

Parameters
loopa pw_thread_loop to signal

The documentation for this class was generated from the following files: