MQTT C Client Libraries Internals
Macros | Functions
Thread.c File Reference

Threading related functions. More...

#include "Thread.h"
#include "Log.h"
#include "StackTrace.h"
#include <errno.h>
#include <unistd.h>
#include <sys/time.h>
#include <fcntl.h>
#include <stdio.h>
#include <sys/stat.h>
#include <limits.h>
#include <stdlib.h>
#include "OsWrapper.h"
Include dependency graph for Thread.c:

Functions

void Thread_start (thread_fn fn, void *parameter)
 Start a new thread. More...
 
int Thread_set_name (const char *thread_name)
 
mutex_type Thread_create_mutex (int *rc)
 Create a new mutex. More...
 
int Thread_lock_mutex (mutex_type mutex)
 Lock a mutex which has alrea. More...
 
int Thread_unlock_mutex (mutex_type mutex)
 Unlock a mutex which has already been locked. More...
 
int Thread_destroy_mutex (mutex_type mutex)
 Destroy a mutex which has already been created. More...
 
thread_id_type Thread_getid (void)
 Get the thread id of the thread from which this function is called. More...
 
sem_type Thread_create_sem (int *rc)
 Create a new semaphore. More...
 
int Thread_wait_sem (sem_type sem, int timeout)
 Wait for a semaphore to be posted, or timeout. More...
 
int Thread_check_sem (sem_type sem)
 Check to see if a semaphore has been posted, without waiting The semaphore will be unchanged, if the return value is false. More...
 
int Thread_post_sem (sem_type sem)
 Post a semaphore. More...
 
int Thread_destroy_sem (sem_type sem)
 Destroy a semaphore which has already been created. More...
 
cond_type Thread_create_cond (int *rc)
 Create a new condition variable. More...
 
int Thread_signal_cond (cond_type condvar)
 Signal a condition variable. More...
 
int Thread_wait_cond (cond_type condvar, int timeout_ms)
 Wait with a timeout (ms) for condition variable. More...
 
int Thread_destroy_cond (cond_type condvar)
 Destroy a condition variable. More...
 

Detailed Description

Threading related functions.

Used to create platform independent threading functions

Function Documentation

◆ Thread_check_sem()

int Thread_check_sem ( sem_type  sem)

Check to see if a semaphore has been posted, without waiting The semaphore will be unchanged, if the return value is false.

The semaphore will have been decremented, if the return value is true.

Parameters
semthe semaphore
Returns
0 (false) or 1 (true)

◆ Thread_create_cond()

cond_type Thread_create_cond ( int *  rc)

Create a new condition variable.

Returns
the condition variable struct
Here is the call graph for this function:

◆ Thread_create_mutex()

mutex_type Thread_create_mutex ( int *  rc)

Create a new mutex.

Parameters
rcreturn code: 0 for success, negative otherwise
Returns
the new mutex

◆ Thread_create_sem()

sem_type Thread_create_sem ( int *  rc)

Create a new semaphore.

Parameters
rcreturn code: 0 for success, negative otherwise
Returns
the new condition variable

◆ Thread_destroy_cond()

int Thread_destroy_cond ( cond_type  condvar)

Destroy a condition variable.

Returns
completion code

◆ Thread_destroy_mutex()

int Thread_destroy_mutex ( mutex_type  mutex)

Destroy a mutex which has already been created.

Parameters
mutexthe mutex

◆ Thread_destroy_sem()

int Thread_destroy_sem ( sem_type  sem)

Destroy a semaphore which has already been created.

Parameters
semthe semaphore

◆ Thread_getid()

thread_id_type Thread_getid ( void  )

Get the thread id of the thread from which this function is called.

Returns
thread id, type varying according to OS

◆ Thread_lock_mutex()

int Thread_lock_mutex ( mutex_type  mutex)

Lock a mutex which has alrea.

Returns
completion code, 0 is success

◆ Thread_post_sem()

int Thread_post_sem ( sem_type  sem)

Post a semaphore.

Parameters
semthe semaphore
Returns
0 on success

◆ Thread_signal_cond()

int Thread_signal_cond ( cond_type  condvar)

Signal a condition variable.

Returns
completion code

◆ Thread_start()

void Thread_start ( thread_fn  fn,
void *  parameter 
)

Start a new thread.

Parameters
fnthe function to run, must be of the correct signature
parameterpointer to the function parameter, can be NULL

◆ Thread_unlock_mutex()

int Thread_unlock_mutex ( mutex_type  mutex)

Unlock a mutex which has already been locked.

Parameters
mutexthe mutex
Returns
completion code, 0 is success

◆ Thread_wait_cond()

int Thread_wait_cond ( cond_type  condvar,
int  timeout_ms 
)

Wait with a timeout (ms) for condition variable.

Returns
0 for success, ETIMEDOUT otherwise

◆ Thread_wait_sem()

int Thread_wait_sem ( sem_type  sem,
int  timeout 
)

Wait for a semaphore to be posted, or timeout.

Parameters
semthe semaphore
timeoutthe maximum time to wait, in milliseconds
Returns
completion code