mirror of
https://github.com/dlang/phobos.git
synced 2025-05-08 03:56:54 +03:00
188 lines
7.1 KiB
D
188 lines
7.1 KiB
D
/* Written by Walter Bright
|
|
* http://www.digitalmars.com
|
|
* Placed into public domain.
|
|
*/
|
|
|
|
module std.c.solaris.pthread;
|
|
|
|
version (Solaris) { } else { static assert(0); }
|
|
|
|
import std.c.solaris.solaris;
|
|
|
|
extern (C):
|
|
|
|
enum
|
|
{
|
|
PTHREAD_DESTRUCTOR_ITERATIONS = 4,
|
|
PTHREAD_KEYS_MAX = 128,
|
|
PTHREAD_STACK_MIN = 4096,
|
|
// TODO: Should this be unit.max?
|
|
PTHREAD_THREADS_MAX = 64,
|
|
PTHREAD_BARRIER_SERIAL_THREAD = -2
|
|
}
|
|
|
|
enum
|
|
{
|
|
PTHREAD_DETACHED = 0x40,
|
|
PTHREAD_SCOPE_SYSTEM = 0x01,
|
|
PTHREAD_INHERIT_SCHED = 0x01,
|
|
PTHREAD_CREATE_DETACHED = PTHREAD_DETACHED,
|
|
PTHREAD_CREATE_JOINABLE = 0,
|
|
PTHREAD_SCOPE_PROCESS = 0,
|
|
PTHREAD_EXPLICIT_SCHED = 0
|
|
}
|
|
|
|
enum
|
|
{
|
|
PTHREAD_PROCESS_PRIVATE = 0,
|
|
PTHREAD_PROCESS_SHARED = 1
|
|
}
|
|
|
|
enum
|
|
{
|
|
PTHREAD_CANCEL_ENABLE = 0,
|
|
PTHREAD_CANCEL_DISABLE = 1,
|
|
PTHREAD_CANCEL_DEFERRED = 0,
|
|
PTHREAD_CANCEL_ASYNCHRONOUS = 2,
|
|
PTHREAD_CANCELED = cast(void*)-19
|
|
}
|
|
|
|
enum
|
|
{
|
|
PTHREAD_PRIO_NONE = 0x0,
|
|
PTHREAD_PRIO_INHERIT = 0x10,
|
|
PTHREAD_PRIO_PROTECT = 0x20
|
|
}
|
|
|
|
enum pthread_mutextype
|
|
{
|
|
PTHREAD_MUTEX_ERRORCHECK = 2,
|
|
PTHREAD_MUTEX_RECURSIVE = 4,
|
|
PTHREAD_MUTEX_NORMAL = 0,
|
|
PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL
|
|
}
|
|
|
|
typedef void* pthread_t;
|
|
typedef void* pthread_attr_t;
|
|
typedef void* pthread_mutex_t;
|
|
typedef void* pthread_mutexattr_t;
|
|
typedef void* pthread_cond_t;
|
|
typedef void* pthread_condattr_t;
|
|
typedef uint pthread_key_t;
|
|
typedef void* pthread_rwlock_t;
|
|
typedef void* pthread_rwlockattr_t;
|
|
typedef void* pthread_barrier_t;
|
|
typedef void* pthread_barrierattr_t;
|
|
typedef void* pthread_spinlock_t;
|
|
typedef void* pthread_addr_t;
|
|
|
|
alias void* function(void*) pthread_startroutine_t;
|
|
|
|
struct pthread_once_t
|
|
{
|
|
ulong[4] __pthread_once_pad;
|
|
}
|
|
|
|
int pthread_atfork(void function(), void function(), void function());
|
|
int pthread_attr_destroy(pthread_attr_t*);
|
|
int pthread_attr_getdetachstate(in pthread_attr_t*, int*);
|
|
int pthread_attr_getguardsize(in pthread_attr_t*, size_t*);
|
|
int pthread_attr_getinheritsched(in pthread_attr_t*, int*);
|
|
int pthread_attr_getschedparam(in pthread_attr_t*, sched_param*);
|
|
int pthread_attr_getschedpolicy(in pthread_attr_t*, int*);
|
|
int pthread_attr_getscope(in pthread_attr_t*, int*);
|
|
int pthread_attr_getstack(in pthread_attr_t*, void**, size_t*);
|
|
int pthread_attr_getstackaddr(in pthread_attr_t*, void**);
|
|
int pthread_attr_getstacksize(in pthread_attr_t*, size_t*);
|
|
int pthread_attr_init(pthread_attr_t*);
|
|
int pthread_attr_setdetachstate(pthread_attr_t*, int);
|
|
int pthread_attr_setguardsize(pthread_attr_t*, size_t);
|
|
int pthread_attr_setinheritsched(pthread_attr_t*, int);
|
|
int pthread_attr_setschedparam(pthread_attr_t*, in sched_param*);
|
|
int pthread_attr_setschedpolicy(pthread_attr_t*, int);
|
|
int pthread_attr_setscope(pthread_attr_t*, int);
|
|
int pthread_attr_setstack(pthread_attr_t*, void*, size_t);
|
|
int pthread_attr_setstackaddr(pthread_attr_t*, void*);
|
|
int pthread_attr_setstacksize(pthread_attr_t*, size_t);
|
|
int pthread_barrier_destroy(pthread_barrier_t*);
|
|
int pthread_barrier_init(pthread_barrier_t*, in pthread_barrierattr_t*, uint);
|
|
int pthread_barrier_wait(pthread_barrier_t*);
|
|
int pthread_barrierattr_destroy(pthread_barrierattr_t*);
|
|
int pthread_barrierattr_getpshared(in pthread_barrierattr_t*, int*);
|
|
int pthread_barrierattr_init(pthread_barrierattr_t*);
|
|
int pthread_barrierattr_setpshared(pthread_barrierattr_t*, int);
|
|
int pthread_cancel(pthread_t);
|
|
int pthread_cond_broadcast(pthread_cond_t*);
|
|
int pthread_cond_destroy(pthread_cond_t*);
|
|
int pthread_cond_init(pthread_cond_t*, in pthread_condattr_t*);
|
|
int pthread_cond_signal(pthread_cond_t*);
|
|
int pthread_cond_timedwait(pthread_cond_t*, pthread_mutex_t*, in timespec*);
|
|
int pthread_cond_wait(pthread_cond_t*, pthread_mutex_t*);
|
|
int pthread_condattr_destroy(pthread_condattr_t*);
|
|
int pthread_condattr_getclock(in pthread_condattr_t*, clockid_t*);
|
|
int pthread_condattr_getpshared(in pthread_condattr_t*, int*);
|
|
int pthread_condattr_init(pthread_condattr_t*);
|
|
int pthread_condattr_setclock(pthread_condattr_t*, clockid_t);
|
|
int pthread_condattr_setpshared(pthread_condattr_t*, int);
|
|
int pthread_create(pthread_t*, in pthread_attr_t*, void* function(void*), void*);
|
|
int pthread_detach(pthread_t);
|
|
int pthread_equal(pthread_t, pthread_t);
|
|
int pthread_getconcurrency();
|
|
int pthread_getprio(pthread_t);
|
|
int pthread_getschedparam(pthread_t pthread, int*, sched_param*);
|
|
int pthread_join(pthread_t, void**);
|
|
int pthread_key_create(pthread_key_t*, void function(void*));
|
|
int pthread_key_delete(pthread_key_t);
|
|
int pthread_kill(pthread_t, int);
|
|
int pthread_mutex_destroy(pthread_mutex_t*);
|
|
int pthread_mutex_getprioceiling(pthread_mutex_t*, int*);
|
|
int pthread_mutex_init(pthread_mutex_t*, in pthread_mutexattr_t*);
|
|
int pthread_mutex_lock(pthread_mutex_t*);
|
|
int pthread_mutex_setprioceiling(pthread_mutex_t*, int, int*);
|
|
int pthread_mutex_timedlock(pthread_mutex_t*, in timespec*);
|
|
int pthread_mutex_trylock(pthread_mutex_t*);
|
|
int pthread_mutex_unlock(pthread_mutex_t*);
|
|
int pthread_mutexattr_destroy(pthread_mutexattr_t*);
|
|
int pthread_mutexattr_getprioceiling(pthread_mutexattr_t*, int*);
|
|
int pthread_mutexattr_getprotocol(pthread_mutexattr_t*, int*);
|
|
int pthread_mutexattr_getpshared(in pthread_mutexattr_t*, int*);
|
|
int pthread_mutexattr_gettype(pthread_mutexattr_t*, int*);
|
|
int pthread_mutexattr_init(pthread_mutexattr_t*);
|
|
int pthread_mutexattr_setprioceiling(pthread_mutexattr_t*, int);
|
|
int pthread_mutexattr_setprotocol(pthread_mutexattr_t*, int);
|
|
int pthread_mutexattr_setpshared(pthread_mutexattr_t*, int);
|
|
int pthread_mutexattr_settype(pthread_mutexattr_t*, int);
|
|
int pthread_once(pthread_once_t*, void function());
|
|
int pthread_rwlock_destroy(pthread_rwlock_t*);
|
|
int pthread_rwlock_init(pthread_rwlock_t*, in pthread_rwlockattr_t*);
|
|
int pthread_rwlock_rdlock(pthread_rwlock_t*);
|
|
int pthread_rwlock_timedrdlock(pthread_rwlock_t*, in timespec*);
|
|
int pthread_rwlock_timedwrlock(pthread_rwlock_t*, in timespec*);
|
|
int pthread_rwlock_tryrdlock(pthread_rwlock_t*);
|
|
int pthread_rwlock_trywrlock(pthread_rwlock_t*);
|
|
int pthread_rwlock_unlock(pthread_rwlock_t*);
|
|
int pthread_rwlock_wrlock(pthread_rwlock_t*);
|
|
int pthread_rwlockattr_destroy(pthread_rwlockattr_t*);
|
|
int pthread_rwlockattr_getpshared(in pthread_rwlockattr_t*, int*);
|
|
int pthread_rwlockattr_init(pthread_rwlockattr_t*);
|
|
int pthread_rwlockattr_setpshared(pthread_rwlockattr_t*, int);
|
|
int pthread_setcancelstate(int, int*);
|
|
int pthread_setcanceltype(int, int*);
|
|
int pthread_setconcurrency(int);
|
|
int pthread_setprio(pthread_t, int);
|
|
int pthread_setschedparam(pthread_t, int, in sched_param*);
|
|
int pthread_setspecific(pthread_key_t, in void*);
|
|
int pthread_sigmask(int, in __sigset_t*, __sigset_t*);
|
|
int pthread_spin_destroy(pthread_spinlock_t*);
|
|
int pthread_spin_init(pthread_spinlock_t*, int);
|
|
int pthread_spin_lock(pthread_spinlock_t*);
|
|
int pthread_spin_trylock(pthread_spinlock_t*);
|
|
int pthread_spin_unlock(pthread_spinlock_t*);
|
|
pthread_t pthread_self();
|
|
void pthread_cleanup_pop(int);
|
|
void pthread_cleanup_push(void function(void*), void*);
|
|
void pthread_exit(void*);
|
|
void pthread_testcancel();
|
|
void pthread_yield();
|
|
void* pthread_getspecific(pthread_key_t);
|
|
|