/* ** (c) COPYRIGHT CERN 1994. ** Please first read the full copyright statement in the file COPYRIGH. */This module contains the routines for handling the set of active sockets currently in use by the multithreaded clients. It is an internal module to the Library, the application interface is implemented in the Event Module. Look for more information in the Multithread Specifications.
This module is implemented by HTThread.c, and it is a part of the Library of Common Code.
#ifndef HTTHREAD_H #define HTTHREAD_H
extern BOOL HTThreadInit NOPARAMS;It is VERY important that this one is called before the first request, as otherwise the socket bit arrays are uninitialized.
HTNetInfo
data structure.
extern void HTThread_new PARAMS((HTNetInfo * new_net)); extern int HTThread_clear PARAMS((HTNetInfo * old_net));
READ
and
WRITE
.
extern int HTThreadGetFDInfo PARAMS((fd_set * read, fd_set * write));
typedef enum _HTThreadAction { THD_SET_WRITE=0, THD_CLR_WRITE, THD_SET_READ, THD_CLR_READ, THD_SET_INTR, THD_CLR_INTR, THD_CLOSE } HTThreadAction;
extern void HTThreadState PARAMS((int sockfd, HTThreadAction action));This function makes life easier if you want to mark all sockets as interrupted.
extern void HTThreadMarkIntrAll PARAMS((CONST fd_set * fd_user));
extern BOOL HTThreadIntr PARAMS((int sockfd));
extern BOOL HTThreadActive NOPARAMS;
select
function has returned a set of pending
sockets this functions selects one of them and finds the
correseponding request structure.
extern HTRequest *HTThread_getRequest PARAMS((CONST fd_set * fd_read, CONST fd_set * fd_write)); #endifEnd of HTThread module