|
|
|
@@ -1749,6 +1749,7 @@ jack_engine_new (int realtime, int rtpriority, int do_mlock, int do_unlock, |
|
|
|
engine->server_name = server_name; |
|
|
|
engine->temporary = temporary; |
|
|
|
engine->freewheeling = 0; |
|
|
|
engine->stop_freewheeling = 0; |
|
|
|
engine->fwclient = 0; |
|
|
|
engine->feedbackcount = 0; |
|
|
|
engine->wait_pid = wait_pid; |
|
|
|
@@ -2019,7 +2020,7 @@ jack_engine_freewheel (void *arg) |
|
|
|
|
|
|
|
client = jack_client_internal_by_id (engine, engine->fwclient); |
|
|
|
|
|
|
|
while (engine->freewheeling) { |
|
|
|
while (!engine->stop_freewheeling) { |
|
|
|
|
|
|
|
jack_run_one_cycle (engine, engine->control->buffer_size, 0.0f); |
|
|
|
|
|
|
|
@@ -2067,6 +2068,7 @@ jack_start_freewheeling (jack_engine_t* engine, jack_client_id_t client_id) |
|
|
|
} |
|
|
|
|
|
|
|
engine->freewheeling = 1; |
|
|
|
engine->stop_freewheeling = 0; |
|
|
|
|
|
|
|
event.type = StartFreewheel; |
|
|
|
jack_deliver_event_to_all (engine, &event); |
|
|
|
@@ -2104,13 +2106,15 @@ jack_stop_freewheeling (jack_engine_t* engine, int engine_exiting) |
|
|
|
to exit. |
|
|
|
*/ |
|
|
|
|
|
|
|
engine->fwclient = 0; |
|
|
|
engine->freewheeling = 0; |
|
|
|
engine->stop_freewheeling = 1; |
|
|
|
|
|
|
|
VERBOSE (engine, "freewheeling stopped, waiting for thread"); |
|
|
|
pthread_join (engine->freewheel_thread, &ftstatus); |
|
|
|
VERBOSE (engine, "freewheel thread has returned"); |
|
|
|
|
|
|
|
engine->fwclient = 0; |
|
|
|
engine->freewheeling = 0; |
|
|
|
|
|
|
|
if (!engine_exiting) { |
|
|
|
/* tell everyone we've stopped */ |
|
|
|
|
|
|
|
|