diff --git a/drivers/firewire/ffado_driver.c b/drivers/firewire/ffado_driver.c index 69efd02..da4db4e 100644 --- a/drivers/firewire/ffado_driver.c +++ b/drivers/firewire/ffado_driver.c @@ -632,7 +632,7 @@ ffado_driver_start (ffado_driver_t *driver) int retval=0; if((retval=ffado_streaming_start(driver->dev))) { - printError("Could not start streaming threads"); + printError("Could not start streaming threads: %d", retval); return retval; } diff --git a/libjack/driver.c b/libjack/driver.c index a17bf17..eac1fa8 100644 --- a/libjack/driver.c +++ b/libjack/driver.c @@ -153,11 +153,13 @@ jack_driver_nt_start (jack_driver_nt_t * driver) driver->engine->control->real_time, jack_driver_nt_thread, driver)) != 0) { jack_error ("DRIVER NT: could not start driver thread!"); - driver->nt_stop (driver); return err; } - + if ((err = driver->nt_start (driver)) != 0) { + /* make the thread run and exit immediately */ + driver->nt_run = DRIVER_NT_EXIT; + pthread_mutex_unlock (&driver->nt_run_lock); jack_error ("DRIVER NT: could not start driver"); return err; }