mUPnP for C
thread.h File Reference
#include <mupnp/typedef.h>
#include <mupnp/util/list.h>
#include <mupnp/util/cond.h>
#include <mupnp/util/time.h>
#include <pthread.h>
#include <signal.h>

Data Structures

struct  _mUpnpThread
 The generic wrapper struct for mUPnP's threads. More...
 

Macros

#define MUPNP_THREAD_MIN_SLEEP   1000
 
#define mupnp_thread_next(thread)
 
#define mupnp_thread_remove(thread)
 
#define mupnp_threadlist_clear(threadList)
 
#define mupnp_threadlist_size(threadList)
 
#define mupnp_threadlist_gets(threadList)
 
#define mupnp_threadlist_add(threadList, thread)
 
#define mupnp_threadlist_remove(thread)
 

Typedefs

typedef struct _mUpnpThread mUpnpThread
 The generic wrapper struct for mUPnP's threads.
 
typedef struct _mUpnpThread mUpnpThreadList
 
typedef void(* MUPNP_THREAD_FUNC) (mUpnpThread *)
 

Functions

mUpnpThreadmupnp_thread_new (void)
 
mUpnpThreadmupnp_thread_self (void)
 
bool mupnp_thread_delete (mUpnpThread *thread)
 
bool mupnp_thread_start (mUpnpThread *thread)
 
bool mupnp_thread_stop (mUpnpThread *thread)
 
bool mupnp_thread_stop_with_cond (mUpnpThread *thread, mUpnpCond *cond)
 
bool mupnp_thread_restart (mUpnpThread *thread)
 
bool mupnp_thread_isrunnable (mUpnpThread *thread)
 
void mupnp_thread_setaction (mUpnpThread *thread, MUPNP_THREAD_FUNC actionFunc)
 
void mupnp_thread_setuserdata (mUpnpThread *thread, void *data)
 
void * mupnp_thread_getuserdata (mUpnpThread *thread)
 
mUpnpThreadListmupnp_threadlist_new (void)
 
void mupnp_threadlist_delete (mUpnpThreadList *threadList)
 
bool mupnp_threadlist_start (mUpnpThreadList *threadList)
 
bool mupnp_threadlist_stop (mUpnpThreadList *threadList)
 

Macro Definition Documentation

◆ MUPNP_THREAD_MIN_SLEEP

#define MUPNP_THREAD_MIN_SLEEP   1000

◆ mupnp_thread_next

#define mupnp_thread_next ( thread)
Value:
mUpnpList * mupnp_list_next(mUpnpList *list)
Definition list.c:234
The generic list interface in mUPnP.
Definition list.h:56
The generic wrapper struct for mUPnP's threads.
Definition thread.h:64

◆ mupnp_thread_remove

#define mupnp_thread_remove ( thread)
Value:
void mupnp_list_remove(mUpnpList *list)
Definition list.c:144

◆ mupnp_threadlist_add

#define mupnp_threadlist_add ( threadList,
thread )
Value:
mupnp_list_add((mUpnpList*)threadList, (mUpnpList*)thread)
void mupnp_list_add(mUpnpList *headList, mUpnpList *list)
Definition list.c:123

Add a thread into a thread list

Parameters
threadListThe thread list in question
threadThe thread to add to the list

◆ mupnp_threadlist_clear

#define mupnp_threadlist_clear ( threadList)
Value:
void mupnp_list_clear(mUpnpList *headList, MUPNP_LIST_DESTRUCTORFUNC destructorFunc)
Definition list.c:257
void(* MUPNP_LIST_DESTRUCTORFUNC)(void *)
Definition list.h:29
bool mupnp_thread_delete(mUpnpThread *thread)
Definition thread.c:218

Clear the contents of a thread list

Parameters
threadListThread list in question

◆ mupnp_threadlist_gets

#define mupnp_threadlist_gets ( threadList)
Value:

Get the first actual item from a thread list to use as an iterator

Parameters
threadListThe thread list in question

◆ mupnp_threadlist_remove

#define mupnp_threadlist_remove ( thread)
Value:

Remove a thread from thread list

Parameters
threadListThe thread list in question
threadThe thread to be removed

◆ mupnp_threadlist_size

#define mupnp_threadlist_size ( threadList)
Value:
int mupnp_list_size(mUpnpList *headList)
Definition list.c:53

Get the size of a thread list

Parameters
threadListThe thread list in question

Typedef Documentation

◆ MUPNP_THREAD_FUNC

typedef void(* MUPNP_THREAD_FUNC) (mUpnpThread *)

Prototype for the threads' worker functions

◆ mUpnpThread

typedef struct _mUpnpThread mUpnpThread

The generic wrapper struct for mUPnP's threads.

This wrapper has been created to enable 100% code compatibility between different platforms (Linux, Win32 etc..)

◆ mUpnpThreadList

typedef struct _mUpnpThread mUpnpThreadList

Function Documentation

◆ mupnp_thread_delete()

bool mupnp_thread_delete ( mUpnpThread * thread)

Stop and destroy a thread.

Parameters
threadThread to destroy

◆ mupnp_thread_getuserdata()

void * mupnp_thread_getuserdata ( mUpnpThread * thread)

Get the user data pointer

Parameters
threadThread from which to get the pointer

◆ mupnp_thread_isrunnable()

bool mupnp_thread_isrunnable ( mUpnpThread * thread)

Check if a thread has been started

Parameters
threadThread to check

◆ mupnp_thread_new()

mUpnpThread * mupnp_thread_new ( void )

Create a new thread

◆ mupnp_thread_restart()

bool mupnp_thread_restart ( mUpnpThread * thread)

Restart a thread. Essentially calls mupnp_thread_stop() and mupnp_thread_start()

Parameters
threadThread to restart

◆ mupnp_thread_self()

mUpnpThread * mupnp_thread_self ( void )

Get a self reference to thread.

◆ mupnp_thread_setaction()

void mupnp_thread_setaction ( mUpnpThread * thread,
MUPNP_THREAD_FUNC actionFunc )

Set the thread's worker function.

Parameters
threadThread struct
actionFuncFunction pointer to set as the worker function

◆ mupnp_thread_setuserdata()

void mupnp_thread_setuserdata ( mUpnpThread * thread,
void * data )

Set the user data pointer

Parameters
threadThread struct
dataPointer to user data

◆ mupnp_thread_start()

bool mupnp_thread_start ( mUpnpThread * thread)

Start a thread (must be created first with ch_thread_new())

Parameters
threadThread to start

◆ mupnp_thread_stop()

bool mupnp_thread_stop ( mUpnpThread * thread)

Stop a running thread.

Parameters
threadThread to stop

◆ mupnp_thread_stop_with_cond()

bool mupnp_thread_stop_with_cond ( mUpnpThread * thread,
mUpnpCond * cond )

Stop the running thread and signal the given CGCond.

◆ mupnp_threadlist_delete()

void mupnp_threadlist_delete ( mUpnpThreadList * threadList)

Destroy a thread list

Parameters
threadListThe thread list in question

◆ mupnp_threadlist_new()

mUpnpThreadList * mupnp_threadlist_new ( void )

Create a new thread list

Returns
Thread list

◆ mupnp_threadlist_start()

bool mupnp_threadlist_start ( mUpnpThreadList * threadList)

Start all threads in the thread list

Parameters
threadListThe thread list in question

◆ mupnp_threadlist_stop()

bool mupnp_threadlist_stop ( mUpnpThreadList * threadList)

Stop all threads in the thread list

Parameters
threadListThe thread list in question