summaryrefslogtreecommitdiff
path: root/testing/timidity++/timidity++-2.13.2-polling.patch
diff options
context:
space:
mode:
Diffstat (limited to 'testing/timidity++/timidity++-2.13.2-polling.patch')
-rw-r--r--testing/timidity++/timidity++-2.13.2-polling.patch34
1 files changed, 34 insertions, 0 deletions
diff --git a/testing/timidity++/timidity++-2.13.2-polling.patch b/testing/timidity++/timidity++-2.13.2-polling.patch
new file mode 100644
index 000000000..a9638dba1
--- /dev/null
+++ b/testing/timidity++/timidity++-2.13.2-polling.patch
@@ -0,0 +1,34 @@
+--- interface/alsaseq_c.c 2006/12/13 23:22:53 1.28
++++ interface/alsaseq_c.c 2008/04/16 00:14:45 1.29
+@@ -501,6 +501,8 @@
+
+ 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))
+@@ -528,15 +530,17 @@
+ play_event(&ev);
+ aq_fill_nonblocking();
+ }
+- if (! ctxp->active || ! IS_STREAM_TRACE) {
+- fd_set rfds;
+- struct timeval timeout;
+- FD_ZERO(&rfds);
+- FD_SET(ctxp->fd, &rfds);
++
++ 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)
++ goto __done;
+ }
+ }
+