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 Paho_thread_start (thread_fn fn, void *parameter)
 Start a new thread. More...
 
int Thread_set_name (const char *thread_name)
 
mutex_type Paho_thread_create_mutex (int *rc)
 Create a new mutex. More...
 
int Paho_thread_lock_mutex (mutex_type mutex)
 Lock a mutex which has alrea. More...
 
int Paho_thread_unlock_mutex (mutex_type mutex)
 Unlock a mutex which has already been locked. More...
 
int Paho_thread_destroy_mutex (mutex_type mutex)
 Destroy a mutex which has already been created. More...
 
thread_id_type Paho_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

mutex_type Paho_thread_create_mutex ( int *  rc)

Create a new mutex.

Parameters
rcreturn code: 0 for success, negative otherwise
Returns
the new mutex
int Paho_thread_destroy_mutex ( mutex_type  mutex)

Destroy a mutex which has already been created.

Parameters
mutexthe mutex
thread_id_type Paho_thread_getid ( void  )

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

Returns
thread id, type varying according to OS
int Paho_thread_lock_mutex ( mutex_type  mutex)

Lock a mutex which has alrea.

Returns
completion code, 0 is success
void Paho_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
int Paho_thread_unlock_mutex ( mutex_type  mutex)

Unlock a mutex which has already been locked.

Parameters
mutexthe mutex
Returns
completion code, 0 is success
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)
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:

sem_type Thread_create_sem ( int *  rc)

Create a new semaphore.

Parameters
rcreturn code: 0 for success, negative otherwise
Returns
the new condition variable
int Thread_destroy_cond ( cond_type  condvar)

Destroy a condition variable.

Returns
completion code
int Thread_destroy_sem ( sem_type  sem)

Destroy a semaphore which has already been created.

Parameters
semthe semaphore
int Thread_post_sem ( sem_type  sem)

Post a semaphore.

Parameters
semthe semaphore
Returns
0 on success
int Thread_signal_cond ( cond_type  condvar)

Signal a condition variable.

Returns
completion code
int Thread_wait_cond ( cond_type  condvar,
int  timeout_ms 
)

Wait with a timeout (ms) for condition variable.

Returns
0 for success, ETIMEDOUT otherwise
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