33 lines
916 B
C
33 lines
916 B
C
/*++
|
|
|
|
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);
|