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

Annotation of /innwebd/thread_pool.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.2 - (hide annotations)
Sat Jul 3 09:37:58 2004 UTC (21 years, 8 months ago) by sysadm
Branch: MAIN
Changes since 1.1: +18 -15 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     #define TS_SETLOCK_TIMEOUT_MAX 10000
23 sysadm 1.1
24     class thread_pool
25     {
26     public:
27     enum thread_status{
28     S_UNKNOWN = -1,
29     S_UNUSED = 0,
30     S_WORKING = 1,
31 sysadm 1.2 S_WAITING = 2
32 sysadm 1.1 };
33     enum error_code{
34     E_NOERROR = 0,
35     E_LOCK_TIMEOUT = 1,
36     E_MAX_THREAD_EXCEEDED = 2,
37 sysadm 1.2 E_THREAD_NOT_FOUND = 3,
38     E_INVALID_TIMEOUT = 4,
39     E_KILL_THREAD_FAILED = 5
40 sysadm 1.1 };
41     private:
42     UINT uThreadCount;
43     UINT uThreadMax;
44 sysadm 1.2 HANDLE hThreadList[TS_MAX_THREAD];
45     thread_status uThreadStatusList[TS_MAX_THREAD];
46     clock_t time_status_set[TS_MAX_THREAD];
47     clock_t thread_timeout;
48 sysadm 1.1 bool bProcessLock;
49 sysadm 1.2 int SetLock(bool bLock, clock_t tTimeout = TS_SETLOCK_TIMEOUT);
50 sysadm 1.1 error_code uLastErrorCode;
51     public:
52 sysadm 1.2 thread_pool(UINT uThreadMax = TS_MAX_THREAD, clock_t thread_timeout = TS_DEFAULT_TIMEOUT);
53 sysadm 1.1 ~thread_pool(void);
54 sysadm 1.2 int GetLastError(void);
55 sysadm 1.1 int AddThread(HANDLE hThread);
56     int RemoveThread(HANDLE hThread);
57 sysadm 1.2 int SetThreadStatus(HANDLE hThread, int uStatus);
58     int GetThreadStatus(HANDLE hThread);
59     int KillDeadThread(void);
60 sysadm 1.1 };

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