*/
static void handle_throttle(struct handle_input *ctx, int backlog)
{
- assert(!ctx->defunct);
+ if (ctx->defunct)
+ return;
/*
* If there's a read operation already in progress, do nothing:
h->u.i.ev_to_main = CreateEvent(NULL, FALSE, FALSE, NULL);
h->u.i.ev_from_main = CreateEvent(NULL, FALSE, FALSE, NULL);
h->u.i.gotdata = gotdata;
- h->u.i.busy = FALSE;
h->u.i.defunct = FALSE;
h->u.i.moribund = FALSE;
h->u.i.done = FALSE;
CreateThread(NULL, 0, handle_input_threadfunc,
&h->u.i, 0, NULL);
-
- handle_throttle(&h->u.i, 0); /* start first read operation */
+ h->u.i.busy = TRUE;
return h;
}
*/
h->u.g.moribund = TRUE;
h->u.g.done = TRUE;
+ h->u.g.busy = TRUE;
SetEvent(h->u.g.ev_from_main);
}
}
handle_destroy(h);
} else {
h->u.g.done = TRUE;
+ h->u.g.busy = TRUE;
SetEvent(h->u.g.ev_from_main);
}
return;