/[LeafOK_CVS]/innwebd/thread_pool.h
ViewVC logotype

Annotation of /innwebd/thread_pool.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.4 - (hide annotations)
Sat Jul 3 15:10:23 2004 UTC (21 years, 8 months ago) by sysadm
Branch: MAIN
Changes since 1.3: +1 -0 lines
Content type: text/x-chdr
no message

1 sysadm 1.1 /*******************************************************/
2     /* */
3     /* LeafOK Innd */
4     /* Copyright (C) LeafOK.com, 2003-2004 */
5     /* */
6     /* Programmed by Leaf */
7     /* E-mail:leaf@leafok.com QQ:6049044 */
8     /* */
9     /* http://bbs.leafok.com */
10     /* http://bbs.leafok.net */
11     /* http://bbs.fenglin.info */
12     /* */
13     /*******************************************************/
14    
15     #pragma once
16    
17     #include <time.h>
18    
19 sysadm 1.2 #define TS_MAX_THREAD 256
20     #define TS_DEFAULT_TIMEOUT 10000
21     #define TS_SETLOCK_TIMEOUT 100
22 sysadm 1.1
23     class thread_pool
24     {
25     public:
26     enum thread_status{
27     S_UNKNOWN = -1,
28     S_UNUSED = 0,
29     S_WORKING = 1,
30 sysadm 1.2 S_WAITING = 2
31 sysadm 1.1 };
32     enum error_code{
33     E_NOERROR = 0,
34     E_LOCK_TIMEOUT = 1,
35     E_MAX_THREAD_EXCEEDED = 2,
36 sysadm 1.2 E_THREAD_NOT_FOUND = 3,
37     E_INVALID_TIMEOUT = 4,
38     E_KILL_THREAD_FAILED = 5
39 sysadm 1.1 };
40     private:
41     UINT uThreadCount;
42     UINT uThreadMax;
43 sysadm 1.2 HANDLE hThreadList[TS_MAX_THREAD];
44     thread_status uThreadStatusList[TS_MAX_THREAD];
45     clock_t time_status_set[TS_MAX_THREAD];
46 sysadm 1.3 clock_t thread_timeout[TS_MAX_THREAD];
47 sysadm 1.1 bool bProcessLock;
48 sysadm 1.2 int SetLock(bool bLock, clock_t tTimeout = TS_SETLOCK_TIMEOUT);
49 sysadm 1.1 error_code uLastErrorCode;
50 sysadm 1.3 HANDLE hThreadKiller;
51 sysadm 1.4 bool bTerminateThreadKiller;
52 sysadm 1.1 public:
53 sysadm 1.3 thread_pool(UINT uThreadMax = TS_MAX_THREAD);
54 sysadm 1.1 ~thread_pool(void);
55 sysadm 1.3 static DWORD KillDeadThread(LPVOID pParam);
56     int GetLastError(void) const;
57     int AddThread(HANDLE hThread, clock_t thread_timeout = TS_DEFAULT_TIMEOUT);
58 sysadm 1.1 int RemoveThread(HANDLE hThread);
59 sysadm 1.2 int SetThreadStatus(HANDLE hThread, int uStatus);
60     int GetThreadStatus(HANDLE hThread);
61 sysadm 1.3 int GetThreadCount(void) const;
62     int EnableKillDeadThread(void);
63     int DisableKillDeadThread(void);
64 sysadm 1.1 };

webmaster@leafok.com
ViewVC Help
Powered by ViewVC 1.3.0-beta1