www.pudn.com > ProcePool.rar > propool.h
#ifndef _PROPOOL_H_ #define _PROPOOL_H_ #include#include #include #include #include #include #include #include #include #include #include #include #include #define FILENAME_LEN 128 #define OFF_WAITTIME 10 #define KEY_FILE1 "POOL.shm" #define KEY_FILE2 "LOCK.sem" /***************** 定义枚举 **********************/ typedef enum EnumPoolStatus /* 进程池状态 */ { PSTATUS_ON, /* 可用 */ PSTATUS_OFF /* 不可用 */ }EPoolStatus; typedef enum EnumChildProcStatus /* 子进程状态 */ { CSTATUS_ACT, /* 忙碌 */ CSTATUS_IDLE /* 空闲 */ }EChildProcStatus; /***************** 定义结构 **********************/ /* 进程池结构*/ typedef struct StruPool { pid_t iPid; /*进程号 */ long lRate; /*子进程使用次数 */ long lLastTime; /*最近使用时间 */ long lPort; /*子进程侦听端口号 */ EChildProcStatus EStatus; /*子进程状态 0:空闲 1:忙碌 */ }Pool; /*进程池状态结构*/ typedef struct StruPoolCtrl { EPoolStatus EPoolStatus; /*进程池可用状态 */ int iActProcNum; /*激活(正在使用)的进程数 */ int iInitProcNum; /*初始化进程数 */ int iValidProcNum; /*有效(总共)进程数 */ int iMaxProcNum; /*最大进程数 */ }PoolCtrl; /***************** 全局变量 **********************/ Pool *g_SPool; PoolCtrl *g_SPoolCtrl; key_t SEMKEY_LOCK; key_t SHMKEY_POOL; key_t SHMKEY_POOLCTRL;