/*++ Copyright (c) 1997 Microsoft Corporation Module Name: ThreadPool.h --*/ // Number of threads in pool #define POOL_THREADS 2 // Number of entries in ECBqueue #define WORK_QUEUE_ENTRIES 2 // Global critical section to control access to ECB queue CRITICAL_SECTION csQueueLock; // Semaphore to wait on in worker thread; each time an ECB is added to the // ECBqueue by HttpExtensionProc, the semaphore must be released once HANDLE hWorkSem; // These functions will add/retrieve an ECB to/from the linked list. // ENTER csQueueLock BEFORE CALLING AND LEAVE csQueueLock AFTER // RETURNING FROM THESE FUNCTIONS!!! BOOL AddWorkQueueEntry(EXTENSION_CONTROL_BLOCK *); BOOL GetWorkQueueEntry(EXTENSION_CONTROL_BLOCK ** ppECB); // This function initializes the thread pool BOOL InitThreadPool(void); // Function that threads in pool run DWORD WINAPI WorkerFunction(LPVOID);