e576bb | 2002-10-11 | Martin Nilsson | | |
91518c | 2009-03-15 | Martin Stjernholm | | || $Id$
|
e576bb | 2002-10-11 | Martin Nilsson | | */
|
1b10db | 2002-10-08 | Martin Nilsson | |
|
07513e | 1996-10-04 | Fredrik Hübinette (Hubbe) | | #ifndef THREADS_H
#define THREADS_H
|
a7fef4 | 1997-09-03 | Per Hedbor | | #include "object.h"
|
b2d3e4 | 2000-12-01 | Fredrik Hübinette (Hubbe) | | #include "pike_error.h"
|
5923b1 | 2000-07-06 | Fredrik Hübinette (Hubbe) | | #include "interpret.h"
|
45637c | 2001-04-07 | Fredrik Hübinette (Hubbe) | | #include "pike_threadlib.h"
|
d978c0 | 2000-02-04 | Henrik Grubbström (Grubba) | |
|
f3c715 | 2001-04-14 | Fredrik Hübinette (Hubbe) | | #ifdef PIKE_THREADS
|
c91f89 | 2000-04-19 | Martin Stjernholm | |
|
f4a995 | 2003-02-08 | Martin Stjernholm | | #include "pike_rusage.h"
|
07513e | 1996-10-04 | Fredrik Hübinette (Hubbe) | | struct svalue;
|
421801 | 1999-01-31 | Fredrik Hübinette (Hubbe) | | struct pike_frame;
|
07513e | 1996-10-04 | Fredrik Hübinette (Hubbe) | |
|
9f8572 | 2003-03-31 | Henrik Grubbström (Grubba) | |
|
574088 | 1998-01-01 | Fredrik Hübinette (Hubbe) | | #define THREAD_NOT_STARTED -1
#define THREAD_RUNNING 0
#define THREAD_EXITED 1
|
6542e8 | 2004-08-12 | Henrik Grubbström (Grubba) | |
#define THREAD_FLAG_TERM 1 /* Pending termination. */
#define THREAD_FLAG_INTR 2 /* Pending interrupt. */
|
286b31 | 2004-12-30 | Henrik Grubbström (Grubba) | | #define THREAD_FLAG_SIGNAL_MASK 3 /* All of the above. */
|
9f8572 | 2003-03-31 | Henrik Grubbström (Grubba) | |
#define THREAD_DEBUG_LOOSE 1 /* Thread is not bound to the interpreter. */
|
5923b1 | 2000-07-06 | Fredrik Hübinette (Hubbe) | | struct thread_state {
struct Pike_interpreter state;
|
1d456f | 2003-02-20 | Henrik Grubbström (Grubba) | | struct object *thread_obj;
|
5923b1 | 2000-07-06 | Fredrik Hübinette (Hubbe) | | struct mapping *thread_local;
struct thread_state *hashlink, **backlink;
|
043131 | 2003-02-15 | Henrik Grubbström (Grubba) | | struct svalue result;
|
f62515 | 2008-08-05 | Martin Stjernholm | | COND_T status_change;
THREAD_T id;
|
247f73 | 2007-06-10 | Martin Stjernholm | | #ifdef CPU_TIME_MIGHT_BE_THREAD_LOCAL
|
f4a995 | 2003-02-08 | Martin Stjernholm | | cpu_time_t auto_gc_time;
#endif
|
f62515 | 2008-08-05 | Martin Stjernholm | | unsigned short waiting;
unsigned short flags;
char swapped;
signed char status;
|
6542e8 | 2004-08-12 | Henrik Grubbström (Grubba) | | #ifdef PIKE_DEBUG
char debug_flags;
#endif
|
5923b1 | 2000-07-06 | Fredrik Hübinette (Hubbe) | | };
|
e13200 | 1998-11-19 | Fredrik Hübinette (Hubbe) | |
|
db40ab | 1999-04-15 | Fredrik Hübinette (Hubbe) | |
|
07513e | 1996-10-04 | Fredrik Hübinette (Hubbe) | |
|
35c3ae | 2010-10-30 | Martin Stjernholm | | PMOD_EXPORT int low_nt_create_thread(unsigned stack_size,
unsigned (TH_STDCALL *func)(void *),
void *arg,
unsigned *id);
|
6d1a5e | 1996-10-07 | Fredrik Hübinette (Hubbe) | | struct thread_starter;
|
cd67ac | 1999-05-11 | Fredrik Hübinette (Hubbe) | | struct thread_local;
void low_init_threads_disable(void);
void init_threads_disable(struct object *o);
void exit_threads_disable(struct object *o);
void init_interleave_mutex(IMUTEX_T *im);
void exit_interleave_mutex(IMUTEX_T *im);
void thread_table_init(void);
unsigned INT32 thread_table_hash(THREAD_T *tid);
|
043131 | 2003-02-15 | Henrik Grubbström (Grubba) | | PMOD_EXPORT void thread_table_insert(struct thread_state *s);
PMOD_EXPORT void thread_table_delete(struct thread_state *s);
|
d6896c | 2000-12-16 | Marcus Comstedt | | PMOD_EXPORT struct thread_state *thread_state_for_id(THREAD_T tid);
PMOD_EXPORT struct object *thread_for_id(THREAD_T tid);
PMOD_EXPORT void f_all_threads(INT32 args);
PMOD_EXPORT int count_pike_threads(void);
|
a76b31 | 2010-09-28 | Henrik Grubbström (Grubba) | | PMOD_EXPORT void pike_thread_yield(void);
|
26cd94 | 1999-05-07 | Fredrik Hübinette (Hubbe) | | TH_RETURN_TYPE new_thread_func(void * data);
|
07513e | 1996-10-04 | Fredrik Hübinette (Hubbe) | | void f_thread_create(INT32 args);
|
dc7cc9 | 1998-01-14 | Fredrik Hübinette (Hubbe) | | void f_thread_set_concurrency(INT32 args);
|
d6896c | 2000-12-16 | Marcus Comstedt | | PMOD_EXPORT void f_this_thread(INT32 args);
|
6d1a5e | 1996-10-07 | Fredrik Hübinette (Hubbe) | | struct mutex_storage;
struct key_storage;
|
07513e | 1996-10-04 | Fredrik Hübinette (Hubbe) | | void f_mutex_lock(INT32 args);
void f_mutex_trylock(INT32 args);
void init_mutex_obj(struct object *o);
void exit_mutex_obj(struct object *o);
void init_mutex_key_obj(struct object *o);
void exit_mutex_key_obj(struct object *o);
void f_cond_wait(INT32 args);
void f_cond_signal(INT32 args);
void f_cond_broadcast(INT32 args);
void init_cond_obj(struct object *o);
void exit_cond_obj(struct object *o);
|
dc7cc9 | 1998-01-14 | Fredrik Hübinette (Hubbe) | | void f_thread_backtrace(INT32 args);
void f_thread_id_status(INT32 args);
void init_thread_obj(struct object *o);
void exit_thread_obj(struct object *o);
|
d6896c | 2000-12-16 | Marcus Comstedt | | PMOD_EXPORT void f_thread_local(INT32 args);
|
cd67ac | 1999-05-11 | Fredrik Hübinette (Hubbe) | | void f_thread_local_get(INT32 args);
void f_thread_local_set(INT32 args);
|
a91ca0 | 1998-07-10 | Henrik Grubbström (Grubba) | | void low_th_init(void);
|
cd67ac | 1999-05-11 | Fredrik Hübinette (Hubbe) | | void th_init(void);
|
09a573 | 2008-08-05 | Martin Stjernholm | | void cleanup_all_other_threads (void);
|
be478c | 1997-08-30 | Henrik Grubbström (Grubba) | | void th_cleanup(void);
|
cd67ac | 1999-05-11 | Fredrik Hübinette (Hubbe) | | int th_num_idle_farmers(void);
|
99a5a6 | 2000-08-06 | David Hedbor | | int th_num_farmers(void);
|
d6896c | 2000-12-16 | Marcus Comstedt | | PMOD_EXPORT void th_farm(void (*fun)(void *), void *here);
|
2b42cc | 2007-10-06 | Marcus Comstedt | | PMOD_EXPORT void call_with_interpreter(void (*func)(void *ctx), void *ctx);
PMOD_EXPORT void enable_external_threads(void);
PMOD_EXPORT void disable_external_threads(void);
|
07513e | 1996-10-04 | Fredrik Hübinette (Hubbe) | |
|
e1118e | 2010-09-29 | Henrik Grubbström (Grubba) | | #else
#define pike_thread_yield()
|
07513e | 1996-10-04 | Fredrik Hübinette (Hubbe) | |
|
d3015d | 2000-04-18 | Jonas Wallden | | #endif
|
ec2bab | 2000-06-24 | Fredrik Hübinette (Hubbe) | |
#include "interpret.h"
|
d3015d | 2000-04-18 | Jonas Wallden | |
|
5377b9 | 1997-02-01 | Henrik Grubbström (Grubba) | | #endif /* THREADS_H */
|