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

Annotation of /innwebd/thread_pool.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.6 - (hide annotations)
Sat Feb 26 16:10:26 2005 UTC (21 years ago) by sysadm
Branch: MAIN
CVS Tags: innwebd_1-4-16-0_MIL
Changes since 1.5: +1 -1 lines
Content type: text/x-chdr
Copyright update

1 sysadm 1.1 /*******************************************************/
2     /* */
3 sysadm 1.5 /* LeafOK Innbbsd */
4 sysadm 1.6 /* Copyright (C) LeafOK.com, 2003-2005 */
5 sysadm 1.1 /* */
6     /* Programmed by Leaf */
7 sysadm 1.5 /* E-mail:leaflet@leafok.com QQ:6049044 */
8 sysadm 1.1 /* */
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 sysadm 1.5 E_KILL_THREAD_FAILED = 5,
39     E_KILLER_BEGIN_FAILED = 6,
40     E_KILLER_END_FAILED = 7,
41     E_INVALID_THREAD = 8
42 sysadm 1.1 };
43     private:
44     UINT uThreadCount;
45     UINT uThreadMax;
46 sysadm 1.5 ULONG ulThreadIdList[TS_MAX_THREAD];
47 sysadm 1.2 thread_status uThreadStatusList[TS_MAX_THREAD];
48     clock_t time_status_set[TS_MAX_THREAD];
49 sysadm 1.3 clock_t thread_timeout[TS_MAX_THREAD];
50 sysadm 1.1 bool bProcessLock;
51 sysadm 1.2 int SetLock(bool bLock, clock_t tTimeout = TS_SETLOCK_TIMEOUT);
52 sysadm 1.1 error_code uLastErrorCode;
53 sysadm 1.5 ULONG ulThreadKillerId;
54 sysadm 1.4 bool bTerminateThreadKiller;
55 sysadm 1.1 public:
56 sysadm 1.3 thread_pool(UINT uThreadMax = TS_MAX_THREAD);
57 sysadm 1.1 ~thread_pool(void);
58 sysadm 1.3 static DWORD KillDeadThread(LPVOID pParam);
59     int GetLastError(void) const;
60 sysadm 1.5 int AddThread(ULONG ulThreadId, clock_t thread_timeout = TS_DEFAULT_TIMEOUT);
61     int RemoveThread(ULONG ulThreadId);
62     int SetThreadStatus(ULONG ulThreadId, int uStatus);
63     int GetThreadStatus(ULONG ulThreadId);
64 sysadm 1.3 int GetThreadCount(void) const;
65     int EnableKillDeadThread(void);
66     int DisableKillDeadThread(void);
67 sysadm 1.5 int KillAllThread(void);
68 sysadm 1.1 };

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