1#ifndef RUBY_THREAD_NATIVE_H                          
    2#define RUBY_THREAD_NATIVE_H 1 
   24typedef HANDLE rb_nativethread_id_t;
 
   26typedef union rb_thread_lock_union {
 
   28    CRITICAL_SECTION crit;
 
   29} rb_nativethread_lock_t;
 
   31struct rb_thread_cond_struct {
 
   32    struct cond_event_entry *next;
 
   33    struct cond_event_entry *prev;
 
   36typedef struct rb_thread_cond_struct rb_nativethread_cond_t;
 
   38#elif defined(HAVE_PTHREAD_H) 
   41typedef pthread_t rb_nativethread_id_t;
 
   42typedef pthread_mutex_t rb_nativethread_lock_t;
 
   43typedef pthread_cond_t rb_nativethread_cond_t;
 
   45#elif defined(__wasi__)  
   47typedef struct rb_nativethread_id_t *rb_nativethread_id_t;
 
   48typedef struct rb_nativethread_lock_t *rb_nativethread_lock_t;
 
   49typedef struct rb_nativethread_cond_t *rb_nativethread_cond_t;
 
   51#elif defined(__DOXYGEN__) 
   54struct rb_nativethread_id_t;
 
   57struct rb_nativethread_lock_t;
 
   60struct rb_nativethread_cond_t;
 
   63#error "unsupported thread type" 
#define RBIMPL_SYMBOL_EXPORT_END()
Counterpart of RBIMPL_SYMBOL_EXPORT_BEGIN.
#define RBIMPL_SYMBOL_EXPORT_BEGIN()
Shortcut macro equivalent to RUBY_SYMBOL_EXPORT_BEGIN extern "C" {.
void rb_nativethread_lock_lock(rb_nativethread_lock_t *lock)
Blocks until the current thread obtains a lock.
rb_nativethread_id_t rb_nativethread_self(void)
Queries the ID of the native thread that is calling this function.
void rb_native_mutex_lock(rb_nativethread_lock_t *lock)
Just another name of rb_nativethread_lock_lock.
void rb_native_cond_initialize(rb_nativethread_cond_t *cond)
Fills the passed condition variable with an initial value.
int rb_native_mutex_trylock(rb_nativethread_lock_t *lock)
Identical to rb_native_mutex_lock(), except it doesn't block in case rb_native_mutex_lock() would.
void rb_native_cond_broadcast(rb_nativethread_cond_t *cond)
Signals a condition variable.
void rb_native_mutex_initialize(rb_nativethread_lock_t *lock)
Just another name of rb_nativethread_lock_initialize.
void rb_native_mutex_unlock(rb_nativethread_lock_t *lock)
Just another name of rb_nativethread_lock_unlock.
void rb_nativethread_lock_unlock(rb_nativethread_lock_t *lock)
Releases a lock.
void rb_native_mutex_destroy(rb_nativethread_lock_t *lock)
Just another name of rb_nativethread_lock_destroy.
void rb_native_cond_destroy(rb_nativethread_cond_t *cond)
Destroys the passed condition variable.
void rb_native_cond_signal(rb_nativethread_cond_t *cond)
Signals a condition variable.
void rb_nativethread_lock_initialize(rb_nativethread_lock_t *lock)
Fills the passed lock with an initial value.
void rb_native_cond_wait(rb_nativethread_cond_t *cond, rb_nativethread_lock_t *mutex)
Waits for the passed condition variable to be signalled.
void rb_native_cond_timedwait(rb_nativethread_cond_t *cond, rb_nativethread_lock_t *mutex, unsigned long msec)
Identical to rb_native_cond_wait(), except it additionally takes timeout in msec resolution.
void rb_nativethread_lock_destroy(rb_nativethread_lock_t *lock)
Destroys the passed mutex.