static void doit(struct seq_context *ctxp)
{
fd_set rfds;
struct timeval timeout;
for (;;) {
while (snd_seq_event_input_pending(ctxp->handle, 1)) {
if (do_sequencer(ctxp))
play_event(&ev);
aq_fill_nonblocking();
}
if (! ctxp->active || ! IS_STREAM_TRACE) {
FD_ZERO(&rfds);
FD_SET(ctxp->fd, &rfds);
if (ctxp->active) {
timeout.tv_sec = 0;
timeout.tv_usec = 10000; /* 10ms */
if (select(ctxp->fd + 1, &rfds, NULL, NULL, &timeout) < 0)
goto __done;
} else {
if (select(ctxp->fd + 1, &rfds, NULL, NULL, NULL) < 0)