mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-02-08 07:23:33 +00:00
34 lines
691 B
C
34 lines
691 B
C
|
#ifndef COSMOPOLITAN_LIBC_THREAD_DESCRIPTOR_H_
|
||
|
#define COSMOPOLITAN_LIBC_THREAD_DESCRIPTOR_H_
|
||
|
#if !(__ASSEMBLER__ + __LINKER__ + 0)
|
||
|
COSMOPOLITAN_C_START_
|
||
|
|
||
|
/**
|
||
|
* @fileoverview thread types
|
||
|
*/
|
||
|
|
||
|
enum cthread_state {
|
||
|
cthread_started = 0,
|
||
|
cthread_joining = 1,
|
||
|
cthread_finished = 2,
|
||
|
cthread_detached = 4,
|
||
|
};
|
||
|
|
||
|
|
||
|
struct cthread_descriptor_t {
|
||
|
struct cthread_descriptor_t* self; // mandatory for TLS
|
||
|
struct {
|
||
|
void *top, *bottom;
|
||
|
} stack, tls, alloc;
|
||
|
int state;
|
||
|
int tid;
|
||
|
int rc;
|
||
|
void* pthread_ret_ptr;
|
||
|
};
|
||
|
|
||
|
typedef struct cthread_descriptor_t* cthread_t;
|
||
|
|
||
|
COSMOPOLITAN_C_END_
|
||
|
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
|
||
|
#endif /* COSMOPOLITAN_LIBC_THREAD_DESCRIPTOR_H_ */
|