wget2  2.0.0
Implementation of multi-threading basic functionality

Data Structures

struct  wget_thread_st
 
struct  wget_thread_mutex_st
 
struct  wget_thread_cond_st
 

Functions

int wget_thread_mutex_init (wget_thread_mutex *mutex)
 
int wget_thread_mutex_destroy (wget_thread_mutex *mutex)
 
void wget_thread_mutex_lock (wget_thread_mutex mutex)
 
void wget_thread_mutex_unlock (wget_thread_mutex mutex)
 
int wget_thread_cond_init (wget_thread_cond *cond)
 
int wget_thread_cond_destroy (wget_thread_cond *cond)
 
int wget_thread_cond_signal (wget_thread_cond cond)
 
int wget_thread_cond_wait (wget_thread_cond cond, wget_thread_mutex mutex, long long ms)
 
int wget_thread_start (wget_thread *thread, void *(*start_routine)(void *), void *arg, WGET_GCC_UNUSED int flags)
 
int wget_thread_cancel (WGET_GCC_UNUSED wget_thread thread)
 
int wget_thread_kill (WGET_GCC_UNUSED wget_thread thread, WGET_GCC_UNUSED int sig)
 
int wget_thread_join (wget_thread *thread)
 
wget_thread_id wget_thread_self (void)
 
bool wget_thread_support (void)
 

Detailed Description

This is a wrapper around Gnulib's glthread functionality.

It currently supports Posix threads (pthreads), GNU Pth threads, Solaris threads and Windows threads.

Function Documentation

◆ wget_thread_mutex_init()

int wget_thread_mutex_init ( wget_thread_mutex mutex)
Parameters
[in,out]mutexThe mutex to initialize
Returns
0 on success, non-zero on failure

Initializes the mutex.

After usage, a call to wget_thread_mutex_destroy() frees the allocated resources.

◆ wget_thread_mutex_destroy()

int wget_thread_mutex_destroy ( wget_thread_mutex mutex)
Parameters
[in,out]mutexThe mutex to destroy
Returns
0 on success, non-zero on failure

Free's the mutex and it's resources.

After calling this function, the mutex cannot be used any more.

◆ wget_thread_mutex_lock()

void wget_thread_mutex_lock ( wget_thread_mutex  mutex)
Parameters
[in]mutexThe mutex to be locked

Creates a lock on the mutex.

To unlock the mutex, call wget_thread_mutex_unlock().

◆ wget_thread_mutex_unlock()

void wget_thread_mutex_unlock ( wget_thread_mutex  mutex)
Parameters
[in]mutexThe mutex to be unlocked

Unlocks the mutex.

◆ wget_thread_cond_init()

int wget_thread_cond_init ( wget_thread_cond cond)
Parameters
[in,out]condThe conditional to initialize
Returns
0 on success, non-zero on failure

Initializes the conditional cond.

After usage, a call to wget_thread_cond_destroy() frees the allocated resources.

◆ wget_thread_cond_destroy()

int wget_thread_cond_destroy ( wget_thread_cond cond)
Parameters
[in,out]condThe conditional to destroy
Returns
0 on success, non-zero on failure

Free's the conditional cond and it's resources.

After calling this function, cond cannot be used any more.

◆ wget_thread_cond_signal()

int wget_thread_cond_signal ( wget_thread_cond  cond)
Parameters
[in]condThe conditional to signal a condition
Returns
0 on success, non-zero on failure

Wakes up one (random) thread that waits on the conditional.

◆ wget_thread_cond_wait()

int wget_thread_cond_wait ( wget_thread_cond  cond,
wget_thread_mutex  mutex,
long long  ms 
)
Parameters
[in]condThe conditional to wait for
[in]mutexThe mutex needed for thread-safety
[in]msThe wait timeout in milliseconds
Returns
0 on success, non-zero on failure

Waits for a condition with a max. timeout of ms milliseconds.

To wait forever use a timeout lower or equal then 0.

◆ wget_thread_start()

int wget_thread_start ( wget_thread thread,
void *(*)(void *)  start_routine,
void *  arg,
WGET_GCC_UNUSED int  flags 
)
Parameters
[out]threadThe thread variable to be initialized
[in]start_routineThe thread function to start
[in]argThe argument given to start_routine
[in]flagsCurrently unused
Returns
0 on success, non-zero on failure

Start start_routine as own thread with argument arg.

◆ wget_thread_cancel()

int wget_thread_cancel ( WGET_GCC_UNUSED wget_thread  thread)
Parameters
[in]threadThread to cancel
Returns
0 on success, non-zero on failure

Currently a no-op function, since it's not portable.

◆ wget_thread_kill()

int wget_thread_kill ( WGET_GCC_UNUSED wget_thread  thread,
WGET_GCC_UNUSED int  sig 
)
Parameters
[in]threadThread to send the signal to
[in]sigSignal to send
Returns
0 on success, non-zero on failure

Currently a no-op function, since it's not portable.

◆ wget_thread_join()

int wget_thread_join ( wget_thread thread)
Parameters
[in]threadThread to wait for
Returns
0 on success, non-zero on failure

Wait until the thread has been stopped.

This function just waits - to stop a thread you have take your own measurements.

◆ wget_thread_self()

wget_thread_id wget_thread_self ( void  )
Returns
The thread id of the caller.

◆ wget_thread_support()

bool wget_thread_support ( void  )
Returns
Whether libwget supports multi-threading on this platform or not.