-/* $Id:$ */
+/* $Id$ */
#ifndef THREADS_H
#define THREADS_H
struct CtdlThreadNode{
citthread_t tid; /* id as returned by citthread_create() */
pid_t pid; /* pid, as best the OS will let us determine */
+ long reltid; /* counting from start... */
time_t when; /* When to start a scheduled thread */
struct CitContext *Context; /* The session context that this thread mught be working on or NULL if none */
long number; /* A unigue number for this thread (not implimented yet) */
extern double CtdlThreadLoadAvg;
extern double CtdlThreadWorkerAvg;
+extern long statcount; /* are we doing a stats check? */
extern citthread_key_t ThreadKey;
void ctdl_thread_internal_init_tsd(void);
void ctdl_thread_internal_free_tsd(void);
CtdlThreadNode *ctdl_internal_create_thread(char *name, long flags, void *(*thread_func) (void *arg), void *args);
void ctdl_thread_internal_check_scheduled(void);
+void ctdl_thread_internal_change_state (CtdlThreadNode *this_thread, enum CtdlThreadState new_state);
void InitialiseSemaphores(void);
int try_critical_section (int which_one);