summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas White <taw@physics.org>2023-04-30 09:10:32 +0200
committerThomas White <taw@physics.org>2023-04-30 09:10:32 +0200
commit622813d02f9186e3255aa4745f3bdf133f63ca91 (patch)
tree3eeeabde53fbea884b5639c0af340e22fd0fb99e
parentf3653bcd920edd33e0a991d57661532624176f01 (diff)
Exit on error (avoid 100% CPU loop)
-rw-r--r--x1k2-midi-osc.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/x1k2-midi-osc.c b/x1k2-midi-osc.c
index 3a4f476..3ad763d 100644
--- a/x1k2-midi-osc.c
+++ b/x1k2-midi-osc.c
@@ -279,6 +279,16 @@ static int flip_position(int i)
}
+static int hup_err(struct pollfd *pfds, int nfds)
+{
+ int i;
+ for ( i=0; i<nfds; i++ ) {
+ if ( pfds[i].revents & (POLLERR | POLLHUP) ) return 1;
+ }
+ return 0;
+}
+
+
int main(int argc, char *argv[])
{
int c, r, i;
@@ -371,6 +381,11 @@ int main(int argc, char *argv[])
unsigned short revents;
+ if ( hup_err(pfds, 1+nfds) ) {
+ fprintf(stderr, "Error!\n");
+ break;
+ }
+
if ( pfds[0].revents & POLLIN ) {
lo_server_recv_noblock(osc_server, 0);
}