Remove fd_set from Block/Wakeup handler API
This removes the last uses of fd_set from the server interfaces outside of the OS layer itself. Signed-off-by: Keith Packard <keithp@keithp.com> Reviewed-by: Adam Jackson <ajax@redhat.com>
This commit is contained in:
parent
fb0802113b
commit
9d15912aa4
|
@ -63,14 +63,11 @@ static void ClientAwaken(ClientPtr /* client */ ,
|
||||||
static int SertafiedDelete(void * /* value */ ,
|
static int SertafiedDelete(void * /* value */ ,
|
||||||
XID /* id */
|
XID /* id */
|
||||||
);
|
);
|
||||||
static void SertafiedBlockHandler(void * /* data */ ,
|
static void SertafiedBlockHandler(void *data,
|
||||||
OSTimePtr /* wt */ ,
|
void *timeout);
|
||||||
void * /* LastSelectMask */
|
|
||||||
);
|
static void SertafiedWakeupHandler(void *data,
|
||||||
static void SertafiedWakeupHandler(void * /* data */ ,
|
int i);
|
||||||
int /* i */ ,
|
|
||||||
void * /* LastSelectMask */
|
|
||||||
);
|
|
||||||
|
|
||||||
int
|
int
|
||||||
ClientSleepUntil(ClientPtr client,
|
ClientSleepUntil(ClientPtr client,
|
||||||
|
@ -154,7 +151,7 @@ SertafiedDelete(void *value, XID id)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
SertafiedBlockHandler(void *data, OSTimePtr wt, void *LastSelectMask)
|
SertafiedBlockHandler(void *data, void *wt)
|
||||||
{
|
{
|
||||||
SertafiedPtr pReq, pNext;
|
SertafiedPtr pReq, pNext;
|
||||||
unsigned long delay;
|
unsigned long delay;
|
||||||
|
@ -186,7 +183,7 @@ SertafiedBlockHandler(void *data, OSTimePtr wt, void *LastSelectMask)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
SertafiedWakeupHandler(void *data, int i, void *LastSelectMask)
|
SertafiedWakeupHandler(void *data, int i)
|
||||||
{
|
{
|
||||||
SertafiedPtr pReq, pNext;
|
SertafiedPtr pReq, pNext;
|
||||||
TimeStamp now;
|
TimeStamp now;
|
||||||
|
|
|
@ -2557,7 +2557,7 @@ static XSyncValue *pnext_time;
|
||||||
*** code inspired by multibuffer extension (now deprecated)
|
*** code inspired by multibuffer extension (now deprecated)
|
||||||
*/
|
*/
|
||||||
/*ARGSUSED*/ static void
|
/*ARGSUSED*/ static void
|
||||||
ServertimeBlockHandler(void *env, struct timeval **wt, void *LastSelectMask)
|
ServertimeBlockHandler(void *env, void *wt)
|
||||||
{
|
{
|
||||||
XSyncValue delay;
|
XSyncValue delay;
|
||||||
unsigned long timeout;
|
unsigned long timeout;
|
||||||
|
@ -2583,7 +2583,7 @@ ServertimeBlockHandler(void *env, struct timeval **wt, void *LastSelectMask)
|
||||||
*** Wakeup Handler
|
*** Wakeup Handler
|
||||||
*/
|
*/
|
||||||
/*ARGSUSED*/ static void
|
/*ARGSUSED*/ static void
|
||||||
ServertimeWakeupHandler(void *env, int rc, void *LastSelectMask)
|
ServertimeWakeupHandler(void *env, int rc)
|
||||||
{
|
{
|
||||||
if (pnext_time) {
|
if (pnext_time) {
|
||||||
GetTime();
|
GetTime();
|
||||||
|
@ -2658,7 +2658,7 @@ IdleTimeQueryValue(void *pCounter, CARD64 * pValue_return)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
IdleTimeBlockHandler(void *pCounter, struct timeval **wt, void *LastSelectMask)
|
IdleTimeBlockHandler(void *pCounter, void *wt)
|
||||||
{
|
{
|
||||||
SyncCounter *counter = pCounter;
|
SyncCounter *counter = pCounter;
|
||||||
IdleCounterPriv *priv = SysCounterGetPrivate(counter);
|
IdleCounterPriv *priv = SysCounterGetPrivate(counter);
|
||||||
|
@ -2751,7 +2751,7 @@ IdleTimeCheckBrackets(SyncCounter *counter, XSyncValue idle, XSyncValue *less, X
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
IdleTimeWakeupHandler(void *pCounter, int rc, void *LastSelectMask)
|
IdleTimeWakeupHandler(void *pCounter, int rc)
|
||||||
{
|
{
|
||||||
SyncCounter *counter = pCounter;
|
SyncCounter *counter = pCounter;
|
||||||
IdleCounterPriv *priv = SysCounterGetPrivate(counter);
|
IdleCounterPriv *priv = SysCounterGetPrivate(counter);
|
||||||
|
|
|
@ -197,7 +197,7 @@ RemoveFontWakeup(FontPathElementPtr fpe)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
FontWakeup(void *data, int count, void *LastSelectMask)
|
FontWakeup(void *data, int count)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
FontPathElementPtr fpe;
|
FontPathElementPtr fpe;
|
||||||
|
@ -1918,8 +1918,7 @@ _client_auth_generation(ClientPtr client)
|
||||||
static int fs_handlers_installed = 0;
|
static int fs_handlers_installed = 0;
|
||||||
static unsigned int last_server_gen;
|
static unsigned int last_server_gen;
|
||||||
|
|
||||||
static void
|
static void fs_block_handler(void *blockData, void *timeout)
|
||||||
fs_block_handler(void *blockData, OSTimePtr timeout, void *readmask)
|
|
||||||
{
|
{
|
||||||
FontBlockHandlerProcPtr block_handler = blockData;
|
FontBlockHandlerProcPtr block_handler = blockData;
|
||||||
|
|
||||||
|
|
|
@ -360,8 +360,8 @@ NoopDDA(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
typedef struct _BlockHandler {
|
typedef struct _BlockHandler {
|
||||||
BlockHandlerProcPtr BlockHandler;
|
ServerBlockHandlerProcPtr BlockHandler;
|
||||||
WakeupHandlerProcPtr WakeupHandler;
|
ServerWakeupHandlerProcPtr WakeupHandler;
|
||||||
void *blockData;
|
void *blockData;
|
||||||
Bool deleted;
|
Bool deleted;
|
||||||
} BlockHandlerRec, *BlockHandlerPtr;
|
} BlockHandlerRec, *BlockHandlerPtr;
|
||||||
|
@ -378,14 +378,14 @@ static Bool handlerDeleted;
|
||||||
* \param pReadMask nor how it represents the det of descriptors
|
* \param pReadMask nor how it represents the det of descriptors
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
BlockHandler(void *pTimeout, void *pReadmask)
|
BlockHandler(void *pTimeout)
|
||||||
{
|
{
|
||||||
int i, j;
|
int i, j;
|
||||||
|
|
||||||
++inHandler;
|
++inHandler;
|
||||||
for (i = 0; i < numHandlers; i++)
|
for (i = 0; i < numHandlers; i++)
|
||||||
if (!handlers[i].deleted)
|
if (!handlers[i].deleted)
|
||||||
(*handlers[i].BlockHandler) (handlers[i].blockData, pTimeout, pReadmask);
|
(*handlers[i].BlockHandler) (handlers[i].blockData, pTimeout);
|
||||||
|
|
||||||
for (i = 0; i < screenInfo.numGPUScreens; i++)
|
for (i = 0; i < screenInfo.numGPUScreens; i++)
|
||||||
(*screenInfo.gpuscreens[i]->BlockHandler) (screenInfo.gpuscreens[i], pTimeout);
|
(*screenInfo.gpuscreens[i]->BlockHandler) (screenInfo.gpuscreens[i], pTimeout);
|
||||||
|
@ -413,7 +413,7 @@ BlockHandler(void *pTimeout, void *pReadmask)
|
||||||
* \param pReadmask the resulting descriptor mask
|
* \param pReadmask the resulting descriptor mask
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
WakeupHandler(int result, void *pReadmask)
|
WakeupHandler(int result)
|
||||||
{
|
{
|
||||||
int i, j;
|
int i, j;
|
||||||
|
|
||||||
|
@ -424,7 +424,7 @@ WakeupHandler(int result, void *pReadmask)
|
||||||
(*screenInfo.gpuscreens[i]->WakeupHandler) (screenInfo.gpuscreens[i], result);
|
(*screenInfo.gpuscreens[i]->WakeupHandler) (screenInfo.gpuscreens[i], result);
|
||||||
for (i = numHandlers - 1; i >= 0; i--)
|
for (i = numHandlers - 1; i >= 0; i--)
|
||||||
if (!handlers[i].deleted)
|
if (!handlers[i].deleted)
|
||||||
(*handlers[i].WakeupHandler) (handlers[i].blockData, result, pReadmask);
|
(*handlers[i].WakeupHandler) (handlers[i].blockData, result);
|
||||||
if (handlerDeleted) {
|
if (handlerDeleted) {
|
||||||
for (i = 0; i < numHandlers;)
|
for (i = 0; i < numHandlers;)
|
||||||
if (handlers[i].deleted) {
|
if (handlers[i].deleted) {
|
||||||
|
@ -444,8 +444,8 @@ WakeupHandler(int result, void *pReadmask)
|
||||||
* get called until next time
|
* get called until next time
|
||||||
*/
|
*/
|
||||||
Bool
|
Bool
|
||||||
RegisterBlockAndWakeupHandlers(BlockHandlerProcPtr blockHandler,
|
RegisterBlockAndWakeupHandlers(ServerBlockHandlerProcPtr blockHandler,
|
||||||
WakeupHandlerProcPtr wakeupHandler,
|
ServerWakeupHandlerProcPtr wakeupHandler,
|
||||||
void *blockData)
|
void *blockData)
|
||||||
{
|
{
|
||||||
BlockHandlerPtr new;
|
BlockHandlerPtr new;
|
||||||
|
@ -467,8 +467,8 @@ RegisterBlockAndWakeupHandlers(BlockHandlerProcPtr blockHandler,
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
RemoveBlockAndWakeupHandlers(BlockHandlerProcPtr blockHandler,
|
RemoveBlockAndWakeupHandlers(ServerBlockHandlerProcPtr blockHandler,
|
||||||
WakeupHandlerProcPtr wakeupHandler,
|
ServerWakeupHandlerProcPtr wakeupHandler,
|
||||||
void *blockData)
|
void *blockData)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
|
@ -99,13 +99,13 @@ dmxSyncCallback(OsTimerPtr timer, CARD32 time, void *arg)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
dmxSyncBlockHandler(void *blockData, OSTimePtr pTimeout, void *pReadMask)
|
dmxSyncBlockHandler(void *blockData, void *timeout)
|
||||||
{
|
{
|
||||||
TimerForce(dmxSyncTimer);
|
TimerForce(dmxSyncTimer);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
dmxSyncWakeupHandler(void *blockData, int result, void *pReadMask)
|
dmxSyncWakeupHandler(void *blockData, int result)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -630,7 +630,7 @@ dmxCollectAll(DMXInputInfo * dmxInput)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
dmxBlockHandler(void *blockData, OSTimePtr pTimeout, void *pReadMask)
|
dmxBlockHandler(void *blockData, void *timeout)
|
||||||
{
|
{
|
||||||
DMXInputInfo *dmxInput = &dmxInputs[(uintptr_t) blockData];
|
DMXInputInfo *dmxInput = &dmxInputs[(uintptr_t) blockData];
|
||||||
static unsigned long generation = 0;
|
static unsigned long generation = 0;
|
||||||
|
@ -658,7 +658,7 @@ dmxSwitchReturn(void *p)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
dmxWakeupHandler(void *blockData, int result, void *pReadMask)
|
dmxWakeupHandler(void *blockData, int result)
|
||||||
{
|
{
|
||||||
DMXInputInfo *dmxInput = &dmxInputs[(uintptr_t) blockData];
|
DMXInputInfo *dmxInput = &dmxInputs[(uintptr_t) blockData];
|
||||||
int i;
|
int i;
|
||||||
|
|
|
@ -471,7 +471,7 @@ vfbSaveScreen(ScreenPtr pScreen, int on)
|
||||||
|
|
||||||
/* this flushes any changes to the screens out to the mmapped file */
|
/* this flushes any changes to the screens out to the mmapped file */
|
||||||
static void
|
static void
|
||||||
vfbBlockHandler(void *blockData, OSTimePtr pTimeout, void *pReadmask)
|
vfbBlockHandler(void *blockData, void *timeout)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
@ -492,7 +492,7 @@ vfbBlockHandler(void *blockData, OSTimePtr pTimeout, void *pReadmask)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
vfbWakeupHandler(void *blockData, int result, void *pReadmask)
|
vfbWakeupHandler(void *blockData, int result)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -242,7 +242,7 @@ xf86ProcessActionEvent(ActionEvent action, void *arg)
|
||||||
|
|
||||||
/* ARGSUSED */
|
/* ARGSUSED */
|
||||||
void
|
void
|
||||||
xf86Wakeup(void *blockData, int err, void *pReadmask)
|
xf86Wakeup(void *blockData, int err)
|
||||||
{
|
{
|
||||||
if (xf86VTSwitchPending())
|
if (xf86VTSwitchPending())
|
||||||
xf86VTSwitch();
|
xf86VTSwitch();
|
||||||
|
|
|
@ -871,7 +871,7 @@ InitOutput(ScreenInfo * pScreenInfo, int argc, char **argv)
|
||||||
xf86Resetting = FALSE;
|
xf86Resetting = FALSE;
|
||||||
xf86Initialising = FALSE;
|
xf86Initialising = FALSE;
|
||||||
|
|
||||||
RegisterBlockAndWakeupHandlers((BlockHandlerProcPtr) NoopDDA, xf86Wakeup,
|
RegisterBlockAndWakeupHandlers((ServerBlockHandlerProcPtr) NoopDDA, xf86Wakeup,
|
||||||
NULL);
|
NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -137,7 +137,7 @@ DoShowOptions(void)
|
||||||
/* xf86Events.c */
|
/* xf86Events.c */
|
||||||
|
|
||||||
extern _X_EXPORT void
|
extern _X_EXPORT void
|
||||||
xf86Wakeup(void *blockData, int err, void *pReadmask);
|
xf86Wakeup(void *blockData, int err);
|
||||||
extern _X_HIDDEN int
|
extern _X_HIDDEN int
|
||||||
xf86SigWrapper(int signo);
|
xf86SigWrapper(int signo);
|
||||||
extern _X_EXPORT void
|
extern _X_EXPORT void
|
||||||
|
|
|
@ -1667,7 +1667,7 @@ DRIDestroyInfoRec(DRIInfoPtr DRIInfo)
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
DRIWakeupHandler(void *wakeupData, int result, void *pReadmask)
|
DRIWakeupHandler(void *wakeupData, int result)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
@ -1681,7 +1681,7 @@ DRIWakeupHandler(void *wakeupData, int result, void *pReadmask)
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
DRIBlockHandler(void *blockData, OSTimePtr pTimeout, void *pReadmask)
|
DRIBlockHandler(void *blockData, void *pTimeout)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
|
|
@ -263,11 +263,9 @@ extern _X_EXPORT void DRIDestroyInfoRec(DRIInfoPtr DRIInfo);
|
||||||
|
|
||||||
extern _X_EXPORT Bool DRIFinishScreenInit(ScreenPtr pScreen);
|
extern _X_EXPORT Bool DRIFinishScreenInit(ScreenPtr pScreen);
|
||||||
|
|
||||||
extern _X_EXPORT void DRIWakeupHandler(void *wakeupData,
|
extern _X_EXPORT void DRIWakeupHandler(void *wakeupData, int result);
|
||||||
int result, void *pReadmask);
|
|
||||||
|
|
||||||
extern _X_EXPORT void DRIBlockHandler(void *blockData,
|
extern _X_EXPORT void DRIBlockHandler(void *blockData, void *timeout);
|
||||||
OSTimePtr pTimeout, void *pReadmask);
|
|
||||||
|
|
||||||
extern _X_EXPORT void DRIDoWakeupHandler(ScreenPtr pScreen, int result);
|
extern _X_EXPORT void DRIDoWakeupHandler(ScreenPtr pScreen, int result);
|
||||||
|
|
||||||
|
|
|
@ -32,14 +32,14 @@ is" without express or implied warranty.
|
||||||
#include "Handlers.h"
|
#include "Handlers.h"
|
||||||
|
|
||||||
void
|
void
|
||||||
xnestBlockHandler(void *blockData, OSTimePtr pTimeout, void *pReadMask)
|
xnestBlockHandler(void *blockData, void *timout)
|
||||||
{
|
{
|
||||||
xnestCollectExposures();
|
xnestCollectExposures();
|
||||||
XFlush(xnestDisplay);
|
XFlush(xnestDisplay);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
xnestWakeupHandler(void *blockData, int result, void *pReadMask)
|
xnestWakeupHandler(void *blockData, int result)
|
||||||
{
|
{
|
||||||
xnestCollectEvents();
|
xnestCollectEvents();
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,8 +15,7 @@ is" without express or implied warranty.
|
||||||
#ifndef XNESTHANDLERS_H
|
#ifndef XNESTHANDLERS_H
|
||||||
#define XNESTHANDLERS_H
|
#define XNESTHANDLERS_H
|
||||||
|
|
||||||
void xnestBlockHandler(void *blockData, OSTimePtr pTimeout,
|
void xnestBlockHandler(void *blockData, void *timeout);
|
||||||
void *pReadMask);
|
void xnestWakeupHandler(void *blockData, int result);
|
||||||
void xnestWakeupHandler(void *blockData, int result, void *pReadMask);
|
|
||||||
|
|
||||||
#endif /* XNESTHANDLERS_H */
|
#endif /* XNESTHANDLERS_H */
|
||||||
|
|
|
@ -507,12 +507,12 @@ socket_handler(int fd, int ready, void *data)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
wakeup_handler(void *data, int err, void *pRead)
|
wakeup_handler(void *data, int err)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
block_handler(void *data, OSTimePtr pTimeout, void *pRead)
|
block_handler(void *data, void *timeout)
|
||||||
{
|
{
|
||||||
struct xwl_screen *xwl_screen = data;
|
struct xwl_screen *xwl_screen = data;
|
||||||
|
|
||||||
|
|
|
@ -208,11 +208,9 @@ extern _X_EXPORT int AlterSaveSetForClient(ClientPtr /*client */ ,
|
||||||
|
|
||||||
extern _X_EXPORT void DeleteWindowFromAnySaveSet(WindowPtr /*pWin */ );
|
extern _X_EXPORT void DeleteWindowFromAnySaveSet(WindowPtr /*pWin */ );
|
||||||
|
|
||||||
extern _X_EXPORT void BlockHandler(void *pTimeout,
|
extern _X_EXPORT void BlockHandler(void *timeout);
|
||||||
void *pReadmask);
|
|
||||||
|
|
||||||
extern _X_EXPORT void WakeupHandler(int result,
|
extern _X_EXPORT void WakeupHandler(int result);
|
||||||
void *pReadmask);
|
|
||||||
|
|
||||||
void
|
void
|
||||||
EnableLimitedSchedulingLatency(void);
|
EnableLimitedSchedulingLatency(void);
|
||||||
|
@ -220,16 +218,18 @@ void
|
||||||
void
|
void
|
||||||
DisableLimitedSchedulingLatency(void);
|
DisableLimitedSchedulingLatency(void);
|
||||||
|
|
||||||
typedef void (*WakeupHandlerProcPtr) (void *blockData,
|
typedef void (*ServerBlockHandlerProcPtr) (void *blockData,
|
||||||
int result,
|
void *timeout);
|
||||||
void *pReadmask);
|
|
||||||
|
|
||||||
extern _X_EXPORT Bool RegisterBlockAndWakeupHandlers(BlockHandlerProcPtr blockHandler,
|
typedef void (*ServerWakeupHandlerProcPtr) (void *blockData,
|
||||||
WakeupHandlerProcPtr wakeupHandler,
|
int result);
|
||||||
|
|
||||||
|
extern _X_EXPORT Bool RegisterBlockAndWakeupHandlers(ServerBlockHandlerProcPtr blockHandler,
|
||||||
|
ServerWakeupHandlerProcPtr wakeupHandler,
|
||||||
void *blockData);
|
void *blockData);
|
||||||
|
|
||||||
extern _X_EXPORT void RemoveBlockAndWakeupHandlers(BlockHandlerProcPtr blockHandler,
|
extern _X_EXPORT void RemoveBlockAndWakeupHandlers(ServerBlockHandlerProcPtr blockHandler,
|
||||||
WakeupHandlerProcPtr wakeupHandler,
|
ServerWakeupHandlerProcPtr wakeupHandler,
|
||||||
void *blockData);
|
void *blockData);
|
||||||
|
|
||||||
extern _X_EXPORT void InitBlockAndWakeupHandlers(void);
|
extern _X_EXPORT void InitBlockAndWakeupHandlers(void);
|
||||||
|
|
|
@ -603,7 +603,7 @@ RootlessQueueRedisplay(ScreenPtr pScreen)
|
||||||
* on select().
|
* on select().
|
||||||
*/
|
*/
|
||||||
static void
|
static void
|
||||||
RootlessBlockHandler(void *pbdata, OSTimePtr pTimeout, void *pReadmask)
|
RootlessBlockHandler(void *pbdata, void *ptimeout)
|
||||||
{
|
{
|
||||||
ScreenPtr pScreen = pbdata;
|
ScreenPtr pScreen = pbdata;
|
||||||
RootlessScreenRec *screenRec = SCREENREC(pScreen);
|
RootlessScreenRec *screenRec = SCREENREC(pScreen);
|
||||||
|
@ -616,7 +616,7 @@ RootlessBlockHandler(void *pbdata, OSTimePtr pTimeout, void *pReadmask)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
RootlessWakeupHandler(void *data, int i, void *LastSelectMask)
|
RootlessWakeupHandler(void *data, int result)
|
||||||
{
|
{
|
||||||
// nothing here
|
// nothing here
|
||||||
}
|
}
|
||||||
|
|
|
@ -208,7 +208,7 @@ WaitForSomething(int *pClientsReady)
|
||||||
XFD_COPYSET(&AllSockets, &LastSelectMask);
|
XFD_COPYSET(&AllSockets, &LastSelectMask);
|
||||||
}
|
}
|
||||||
|
|
||||||
BlockHandler((void *) &wt, (void *) &LastSelectMask);
|
BlockHandler(&wt);
|
||||||
if (NewOutputPending)
|
if (NewOutputPending)
|
||||||
FlushAllOutput();
|
FlushAllOutput();
|
||||||
/* keep this check close to select() call to minimize race */
|
/* keep this check close to select() call to minimize race */
|
||||||
|
@ -223,7 +223,7 @@ WaitForSomething(int *pClientsReady)
|
||||||
i = Select(MaxClients, &LastSelectMask, NULL, NULL, wt);
|
i = Select(MaxClients, &LastSelectMask, NULL, NULL, wt);
|
||||||
}
|
}
|
||||||
selecterr = GetErrno();
|
selecterr = GetErrno();
|
||||||
WakeupHandler(i, (void *) &LastSelectMask);
|
WakeupHandler(i);
|
||||||
if (i <= 0) { /* An error or timeout occurred */
|
if (i <= 0) { /* An error or timeout occurred */
|
||||||
if (dispatchException)
|
if (dispatchException)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in New Issue