WG14 threadsafe signals
Loading...
Searching...
No Matches
tss_async_signal_safe.h File Reference
#include "config.h"
Include dependency graph for tss_async_signal_safe.h:

Go to the source code of this file.

Classes

struct  tss_async_signal_safe_attr
 The attributes for creating an async signal safe thread local. More...
 

Typedefs

typedef struct tss_async_signal_safetss_async_signal_safe
 The type of an async signal safe thread local.
 

Functions

int tss_async_signal_safe_create (tss_async_signal_safe *val, const struct tss_async_signal_safe_attr *attr)
 Create an async signal safe thread local instance.
 
int tss_async_signal_safe_destroy (tss_async_signal_safe val)
 Destroy an async signal safe thread local instance.
 
int tss_async_signal_safe_thread_init (tss_async_signal_safe val)
 THREADSAFE Initialise an async signal safe thread local instance for a specific thread.
 
void * tss_async_signal_safe_get (tss_async_signal_safe val)
 THREADSAFE ASYNC-SIGNAL-SAFE Get the thread local value for the current thread.
 

Typedef Documentation

◆ tss_async_signal_safe

The type of an async signal safe thread local.

Definition at line 32 of file tss_async_signal_safe.h.

Function Documentation

◆ tss_async_signal_safe_create()

int tss_async_signal_safe_create ( tss_async_signal_safe val,
const struct tss_async_signal_safe_attr attr 
)
extern

Create an async signal safe thread local instance.

◆ tss_async_signal_safe_destroy()

int tss_async_signal_safe_destroy ( tss_async_signal_safe  val)
extern

Destroy an async signal safe thread local instance.

◆ tss_async_signal_safe_get()

void * tss_async_signal_safe_get ( tss_async_signal_safe  val)
extern

THREADSAFE ASYNC-SIGNAL-SAFE Get the thread local value for the current thread.

◆ tss_async_signal_safe_thread_init()

int tss_async_signal_safe_thread_init ( tss_async_signal_safe  val)
extern

THREADSAFE Initialise an async signal safe thread local instance for a specific thread.

The initialisation and registration of a thread local state for a specific thread is not async signal safe, and so must be manually performed by each thread before use of an async signal safe thread local instance. Call this function somewhere near the beginning of your thread instance.

It is safe to call this functions many times in a thread.