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

Threading related functions. More...

#include "Thread.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

thread_type Thread_start (thread_fn fn, void *parameter)
 Start a new thread. More...
 
mutex_type Thread_create_mutex (void)
 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...
 
void 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 (void)
 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. 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 (void)
 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)
 Wait with a timeout (seconds) 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.

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

◆ Thread_create_cond()

cond_type Thread_create_cond ( void  )

Create a new condition variable.

Returns
the condition variable struct

◆ Thread_create_mutex()

mutex_type Thread_create_mutex ( void  )

Create a new mutex.

Returns
the new mutex

◆ Thread_create_sem()

sem_type Thread_create_sem ( void  )

Create a new semaphore.

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()

void 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
completion code

◆ Thread_signal_cond()

int Thread_signal_cond ( cond_type  condvar)

Signal a condition variable.

Returns
completion code

◆ Thread_start()

thread_type 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
Returns
the new thread

◆ 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 
)

Wait with a timeout (seconds) for condition variable.

Returns
completion code

◆ 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