PHP 8.2.30
Preview: thread_native.h Size: 2.36 KB
/proc/thread-self/root/proc/thread-self/root/proc/thread-self/root/opt/alt/ruby30/include/ruby/thread_native.h

#ifndef RUBY_THREAD_NATIVE_H                         /*-*-C++-*-vi:se ft=cpp:*/
#define RUBY_THREAD_NATIVE_H 1
/**
 * @file
 * @author     $Author: ko1 $
 * @date       Wed May 14 19:37:31 2014
 * @copyright  Copyright (C) 2014 Yukihiro Matsumoto
 * @copyright  This  file  is   a  part  of  the   programming  language  Ruby.
 *             Permission  is hereby  granted,  to  either redistribute  and/or
 *             modify this file, provided that  the conditions mentioned in the
 *             file COPYING are met.  Consult the file for details.
 */

/*
 * This file contains wrapper APIs for native thread primitives
 * which Ruby interpreter uses.
 *
 * Now, we only support pthread and Windows threads.
 *
 * If you want to use Ruby's Mutex and so on to synchronize Ruby Threads,
 * please use Mutex directly.
 */


#if defined(_WIN32)
#include <windows.h>
typedef HANDLE rb_nativethread_id_t;

typedef union rb_thread_lock_union {
    HANDLE mutex;
    CRITICAL_SECTION crit;
} rb_nativethread_lock_t;

typedef struct rb_thread_cond_struct rb_nativethread_cond_t;

#elif defined(HAVE_PTHREAD_H)

#include <pthread.h>
typedef pthread_t rb_nativethread_id_t;
typedef pthread_mutex_t rb_nativethread_lock_t;
typedef pthread_cond_t rb_nativethread_cond_t;

#else
#error "unsupported thread type"

#endif

RUBY_SYMBOL_EXPORT_BEGIN

rb_nativethread_id_t rb_nativethread_self();

void rb_nativethread_lock_initialize(rb_nativethread_lock_t *lock);
void rb_nativethread_lock_destroy(rb_nativethread_lock_t *lock);
void rb_nativethread_lock_lock(rb_nativethread_lock_t *lock);
void rb_nativethread_lock_unlock(rb_nativethread_lock_t *lock);

void rb_native_mutex_lock(rb_nativethread_lock_t *lock);
int  rb_native_mutex_trylock(rb_nativethread_lock_t *lock);
void rb_native_mutex_unlock(rb_nativethread_lock_t *lock);
void rb_native_mutex_initialize(rb_nativethread_lock_t *lock);
void rb_native_mutex_destroy(rb_nativethread_lock_t *lock);

void rb_native_cond_signal(rb_nativethread_cond_t *cond);
void rb_native_cond_broadcast(rb_nativethread_cond_t *cond);
void rb_native_cond_wait(rb_nativethread_cond_t *cond, rb_nativethread_lock_t *mutex);
void rb_native_cond_timedwait(rb_nativethread_cond_t *cond, rb_nativethread_lock_t *mutex, unsigned long msec);
void rb_native_cond_initialize(rb_nativethread_cond_t *cond);
void rb_native_cond_destroy(rb_nativethread_cond_t *cond);

RUBY_SYMBOL_EXPORT_END

#endif

Directory Contents

Dirs: 2 × Files: 27

Name Size Perms Modified Actions
backward DIR
- drwxr-xr-x 2024-07-24 07:19:19
Edit Download
internal DIR
- drwxr-xr-x 2024-07-24 07:19:19
Edit Download
7.54 KB lrw-r--r-- 2024-06-26 13:55:16
Edit Download
8.86 KB lrw-r--r-- 2024-06-26 13:55:16
Edit Download
2.58 KB lrw-r--r-- 2024-06-26 13:55:16
Edit Download
12.81 KB lrw-r--r-- 2024-06-26 13:55:16
Edit Download
1.19 KB lrw-r--r-- 2024-06-26 13:55:16
Edit Download
4.50 KB lrw-r--r-- 2024-06-26 13:55:16
Edit Download
2.49 KB lrw-r--r-- 2024-06-26 13:55:16
Edit Download
1.69 KB lrw-r--r-- 2024-06-26 13:55:16
Edit Download
17.97 KB lrw-r--r-- 2024-06-26 13:55:16
Edit Download
2.34 KB lrw-r--r-- 2024-06-26 13:55:16
Edit Download
5.52 KB lrw-r--r-- 2024-06-26 13:55:16
Edit Download
6.31 KB lrw-r--r-- 2024-06-26 13:55:16
Edit Download
5.55 KB lrw-r--r-- 2024-06-26 13:55:16
Edit Download
43.61 KB lrw-r--r-- 2024-06-26 13:55:16
Edit Download
262 B lrw-r--r-- 2024-06-26 13:55:16
Edit Download
2.09 KB lrw-r--r-- 2024-06-26 13:55:16
Edit Download
2.92 KB lrw-r--r-- 2024-06-26 13:55:16
Edit Download
1.16 KB lrw-r--r-- 2024-06-26 13:55:16
Edit Download
1020 B lrw-r--r-- 2024-06-26 13:55:16
Edit Download
5.00 KB lrw-r--r-- 2024-06-26 13:55:16
Edit Download
7.39 KB lrw-r--r-- 2024-06-26 13:55:16
Edit Download
815 B lrw-r--r-- 2024-06-26 13:55:16
Edit Download
1.43 KB lrw-r--r-- 2024-06-26 13:55:16
Edit Download
2.36 KB lrw-r--r-- 2024-06-26 13:55:16
Edit Download
1.60 KB lrw-r--r-- 2024-06-26 13:55:16
Edit Download
2.06 KB lrw-r--r-- 2024-06-26 13:55:16
Edit Download
1.64 KB lrw-r--r-- 2024-06-26 13:55:16
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).