table of contents
        
      
      
    - Tumbleweed 20240413-1.3
 - Leap-16.0
 - Leap-15.6
 
| libcthreads(3) | Library Functions Manual | libcthreads(3) | 
NAME¶
libcthreads.h —
    Library to support cross-platform C threads
    functions
SYNOPSIS¶
#include
    <libcthreads.h>
Support functions
  
  const char *
  
  libcthreads_get_version(void);
Error functions
  
  void
  
  libcthreads_error_free(libcthreads_error_t
    **error);
int
  
  libcthreads_error_fprint(libcthreads_error_t
    *error, FILE
    *stream);
int
  
  libcthreads_error_sprint(libcthreads_error_t
    *error, char
    *string, size_t
    size);
int
  
  libcthreads_error_backtrace_fprint(libcthreads_error_t
    *error, FILE
    *stream);
int
  
  libcthreads_error_backtrace_sprint(libcthreads_error_t
    *error, char
    *string, size_t
    size);
Thread functions
  
  int
  
  libcthreads_thread_create(libcthreads_thread_t
    **thread, const
    libcthreads_thread_attributes_t *thread_attributes,
    int (*callback_function)( void
    *arguments ), void
    *callback_function_arguments,
    libcthreads_error_t
    **error);
int
  
  libcthreads_thread_join(libcthreads_thread_t
    **thread,
    libcthreads_error_t
    **error);
Thread attributes functions
  
  int
  
  libcthreads_thread_attributes_initialize(libcthreads_thread_attributes_t
    **thread_attributes,
    libcthreads_error_t
    **error);
int
  
  libcthreads_thread_attributes_free(libcthreads_thread_attributes_t
    **thread_attributes,
    libcthreads_error_t
    **error);
Condition functions
  
  int
  
  libcthreads_condition_initialize(libcthreads_condition_t
    **condition,
    libcthreads_error_t
    **error);
int
  
  libcthreads_condition_free(libcthreads_condition_t
    **condition,
    libcthreads_error_t
    **error);
int
  
  libcthreads_condition_broadcast(libcthreads_condition_t
    *condition,
    libcthreads_error_t
    **error);
int
  
  libcthreads_condition_signal(libcthreads_condition_t
    *condition,
    libcthreads_error_t
    **error);
int
  
  libcthreads_condition_wait(libcthreads_condition_t
    *condition,
    libcthreads_mutex_t
    *mutex,
    libcthreads_error_t
    **error);
Lock functions
  
  int
  
  libcthreads_lock_initialize(libcthreads_lock_t
    **lock,
    libcthreads_error_t
    **error);
int
  
  libcthreads_lock_free(libcthreads_lock_t
    **lock,
    libcthreads_error_t
    **error);
int
  
  libcthreads_lock_grab(libcthreads_lock_t
    *lock,
    libcthreads_error_t
    **error);
int
  
  libcthreads_lock_release(libcthreads_lock_t
    *lock,
    libcthreads_error_t
    **error);
Mutex functions
  
  int
  
  libcthreads_mutex_initialize(libcthreads_mutex_t
    **mutex,
    libcthreads_error_t
    **error);
int
  
  libcthreads_mutex_free(libcthreads_mutex_t
    **mutex,
    libcthreads_error_t
    **error);
int
  
  libcthreads_mutex_grab(libcthreads_mutex_t
    *mutex,
    libcthreads_error_t
    **error);
int
  
  libcthreads_mutex_try_grab(libcthreads_mutex_t
    *mutex,
    libcthreads_error_t
    **error);
int
  
  libcthreads_mutex_release(libcthreads_mutex_t
    *mutex,
    libcthreads_error_t
    **error);
Read/Write lock functions
  
  int
  
  libcthreads_read_write_lock_initialize(libcthreads_read_write_lock_t
    **read_write_lock,
    libcthreads_error_t
    **error);
int
  
  libcthreads_read_write_lock_free(libcthreads_read_write_lock_t
    **read_write_lock,
    libcthreads_error_t
    **error);
int
  
  libcthreads_read_write_lock_grab_for_read(libcthreads_read_write_lock_t
    *read_write_lock,
    libcthreads_error_t
    **error);
int
  
  libcthreads_read_write_lock_grab_for_write(libcthreads_read_write_lock_t
    *read_write_lock,
    libcthreads_error_t
    **error);
int
  
  libcthreads_read_write_lock_release_for_read(libcthreads_read_write_lock_t
    *read_write_lock,
    libcthreads_error_t
    **error);
int
  
  libcthreads_read_write_lock_release_for_write(libcthreads_read_write_lock_t
    *read_write_lock,
    libcthreads_error_t
    **error);
Queue functions
  
  int
  
  libcthreads_queue_initialize(libcthreads_queue_t
    **queue, int
    maximum_number_of_values,
    libcthreads_error_t
    **error);
int
  
  libcthreads_queue_free(libcthreads_queue_t
    **queue, int
    (*value_free_function)( intptr_t **value, libcthreads_error_t **error
    ), libcthreads_error_t
    **error);
int
  
  libcthreads_queue_empty(libcthreads_queue_t
    *queue,
    libcthreads_error_t
    **error);
int
  
  libcthreads_queue_try_pop(libcthreads_queue_t
    *queue, intptr_t
    **value,
    libcthreads_error_t
    **error);
int
  
  libcthreads_queue_pop(libcthreads_queue_t
    *queue, intptr_t
    **value,
    libcthreads_error_t
    **error);
int
  
  libcthreads_queue_try_push(libcthreads_queue_t
    *queue, intptr_t
    *value,
    libcthreads_error_t
    **error);
int
  
  libcthreads_queue_push(libcthreads_queue_t
    *queue, intptr_t
    *value,
    libcthreads_error_t
    **error);
int
  
  libcthreads_queue_push_sorted(libcthreads_queue_t
    *queue, intptr_t
    *value, int
    (*value_compare_function)( intptr_t *first_value, intptr_t *second_value,
    libcthreads_error_t **error ),
    uint8_t sort_flags,
    libcthreads_error_t
    **error);
Thread pool functions
  
  int
  
  libcthreads_thread_pool_create(libcthreads_thread_pool_t
    **thread_pool, const
    libcthreads_thread_attributes_t *thread_attributes,
    int number_of_threads,
    int
    maximum_number_of_values,
    int (*callback_function)(
    intptr_t *value, void *arguments ),
    void
    *callback_function_arguments,
    libcthreads_error_t
    **error);
int
  
  libcthreads_thread_pool_push(libcthreads_thread_pool_t
    *thread_pool, intptr_t
    *value,
    libcthreads_error_t
    **error);
int
  
  libcthreads_thread_pool_push_sorted(libcthreads_thread_pool_t
    *thread_pool, intptr_t
    *value, int
    (*value_compare_function)( intptr_t *first_value, intptr_t *second_value,
    libcthreads_error_t **error ),
    uint8_t sort_flags,
    libcthreads_error_t
    **error);
int
  
  libcthreads_thread_pool_join(libcthreads_thread_pool_t
    **thread_pool,
    libcthreads_error_t
    **error);
DESCRIPTION¶
The
    libcthreads_get_version()
    function is used to retrieve the library version.
RETURN VALUES¶
Most of the functions return NULL or -1 on error, dependent on the return type. For the actual return values see "libcthreads.h".
ENVIRONMENT¶
None
FILES¶
None
BUGS¶
Please report bugs of any kind on the project issue tracker: https://github.com/libyal/libcthreads/issues
AUTHOR¶
These man pages are generated from "libcthreads.h".
COPYRIGHT¶
Copyright (C) 2012-2024, Joachim Metz <joachim.metz@gmail.com>.
This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
SEE ALSO¶
the libcthreads.h include file
| March 11, 2019 | libcthreads |