diff --git a/configure.ac b/configure.ac index a973145..9d6659c 100644 --- a/configure.ac +++ b/configure.ac @@ -88,7 +88,7 @@ case "${host_os}" in # barrier code, this may be fixed in 5.3, stay tuned. USE_BARRIER="no" ;; - opebsd*) + openbsd*) # pthread_barrier* not implemented USE_BARRIER="no" # need small realtime stack diff --git a/jackd/engine.c b/jackd/engine.c index 24191d8..3e34f60 100644 --- a/jackd/engine.c +++ b/jackd/engine.c @@ -936,7 +936,11 @@ static int jack_start_watchdog (jack_engine_t *engine) { int watchdog_priority = engine->rtpriority + 10; +#ifndef __OpenBSD__ int max_priority = sched_get_priority_max (SCHED_FIFO); +#else + int max_priority = -1; +#endif if ((max_priority != -1) && (max_priority < watchdog_priority)) @@ -1464,7 +1468,8 @@ jack_server_thread (void *arg) (engine, pfd[i].fd)) { jack_error ("could not handle external" " client request"); -#ifdef JACK_USE_MACH_THREADS +// #ifdef JACK_USE_MACH_THREADS +#if 1 /* poll is implemented using select (see the macosx/fakepoll code). When the socket is closed @@ -2385,6 +2390,8 @@ jack_deliver_event (jack_engine_t *engine, jack_client_internal_t *client, strerror (errno)); client->error++; } + + DEBUG ("engine reading from event fd DONE"); if (status != 0) { jack_error ("bad status for client event " diff --git a/libjack/midiport.c b/libjack/midiport.c index dcc3c04..2d9ecb3 100644 --- a/libjack/midiport.c +++ b/libjack/midiport.c @@ -78,7 +78,11 @@ jack_midi_event_get(jack_midi_event_t *event, (jack_midi_port_info_private_t *) port_buffer; if (event_idx >= info->event_count) +#ifdef ENODATA return ENODATA; +#else + return ENOMSG; +#endif port_event = (jack_midi_port_internal_event_t *) (info + 1); port_event += event_idx; diff --git a/libjack/thread.c b/libjack/thread.c index 12cba34..bf55cf5 100644 --- a/libjack/thread.c +++ b/libjack/thread.c @@ -152,7 +152,11 @@ jack_client_create_thread (jack_client_t* client, log_result("requesting joinable thread creation", result); return result; } +#ifdef __OpenBSD__ + result = pthread_attr_setscope(&attr, PTHREAD_SCOPE_PROCESS); +#else result = pthread_attr_setscope(&attr, PTHREAD_SCOPE_SYSTEM); +#endif if (result) { log_result("requesting system scheduling scope", result); return result;