Try to rationalise the mutex lock/unlock sequence. Hunting for an
[citadel.git] / citadel / include / ctdl_module.h
index 587adb4a81f007816e9f4e95f36501ef2da720fc..5fbd9b1477fe55c6dd826135ffae1594a8408dba 100644 (file)
@@ -111,12 +111,22 @@ void CtdlModuleStartCryptoMsgs(char *ok_response, char *nosup_response, char *er
 struct CtdlThreadNode *CtdlThreadCreate(char *name, long flags, void *(*thread_func) (void *arg), void *args);
 void CtdlThreadSleep(int secs);
 void CtdlThreadStop(struct CtdlThreadNode *thread);
-int CtdlThreadCheckStop(void);
+int CtdlThreadCheckStop(struct CtdlThreadNode *this_thread);
 void CtdlThreadCancel(struct CtdlThreadNode *thread);
 char *CtdlThreadName(struct CtdlThreadNode *thread, char *name);
 struct CtdlThreadNode *CtdlThreadSelf(void);
 int CtdlThreadGetCount(void);
+int CtdlThreadGetWorkers(void);
+double CtdlThreadGetWorkerAvg(void);
+double CtdlThreadGetLoadAvg(void);
 void CtdlThreadGC(void);
 void CtdlThreadStopAll(void);
+int CtdlThreadSelect(int n, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, const struct timeval *timeout, struct CtdlThreadNode *self);
+
+/* Macros to speed up getting outr thread */
+#define CT _this_cit_thread
+#define CT_PUSH() \
+       struct CtdlThreadNode *_this_cit_thread;\
+       _this_cit_thread = CtdlThreadSelf()
 
 #endif /* CTDL_MODULE_H */