|
|
|
@@ -52,6 +52,12 @@ |
|
|
|
|
|
|
|
#define NoPort -1 |
|
|
|
|
|
|
|
/** |
|
|
|
* Time to wait for clients in msecs. Used when jackd is |
|
|
|
* run in non-ASIO mode and without realtime priority enabled. |
|
|
|
*/ |
|
|
|
#define JACKD_SOFT_MODE_TIMEOUT 5000 |
|
|
|
|
|
|
|
typedef struct { |
|
|
|
|
|
|
|
jack_port_internal_t *source; |
|
|
|
@@ -501,11 +507,12 @@ jack_process (jack_engine_t *engine, jack_nframes_t nframes) |
|
|
|
engine->driver->wait (engine->driver, client->subgraph_wait_fd, &status, &delayed_usecs); |
|
|
|
} else { |
|
|
|
struct pollfd pfd[1]; |
|
|
|
int poll_timeout = (engine->control->real_time == 0 ? JACKD_SOFT_MODE_TIMEOUT : engine->driver->period_usecs/1000); |
|
|
|
|
|
|
|
pfd[0].fd = client->subgraph_wait_fd; |
|
|
|
pfd[0].events = POLLERR|POLLIN|POLLHUP|POLLNVAL; |
|
|
|
|
|
|
|
if (poll (pfd, 1, engine->driver->period_usecs/1000) < 0) { |
|
|
|
|
|
|
|
if (poll (pfd, 1, poll_timeout) < 0) { |
|
|
|
jack_error ("poll on subgraph processing failed (%s)", strerror (errno)); |
|
|
|
status = -1; |
|
|
|
} |
|
|
|
|