} else {
debug(1, "alsa: no hardware mixer selected.");
}
-
+
+ usleep(200000); // see if it makes a difference
alsa_mix_handle = NULL;
return response;
}
break;
}
}
-
+ usleep(200000); // see if it makes a difference
return 0;
}
frame_index = 0;
measurement_data_is_valid = 0;
+ usleep(200000); // see if it makes a difference
}
//assuming pthread cancellation is disabled
measurement_data_is_valid = 0;
alsa_handle = NULL;
}
+ usleep(200000); // see if it makes a difference
debug_mutex_unlock(&alsa_mutex, 3);
pthread_cleanup_pop(0); // release the mutex
pthread_setcancelstate(oldState, NULL);
void player_watchdog_thread_cleanup_handler(void *arg) {
rtsp_conn_info *conn = (rtsp_conn_info *)arg;
- debug(2, "Connection %d: Watchdog Exit.", conn->connection_number);
+ debug(1, "Connection %d: Watchdog Exit.", conn->connection_number);
}
void *player_watchdog_thread_code(void *arg) {
if (rc)
debug(1, "Connection %d: error %d destroying flush_mutex.", conn->connection_number, rc);
- debug(2, "Cancel watchdog thread.");
- pthread_cancel(conn->player_watchdog_thread);
- debug(2, "Join watchdog thread.");
- pthread_join(conn->player_watchdog_thread, NULL);
- debug(2, "Delete watchdog mutex.");
- pthread_mutex_destroy(&conn->watchdog_mutex);
-
debug(3, "Connection %d: Checking play lock.", conn->connection_number);
debug_mutex_lock(&playing_conn_lock, 1000000, 3); // get it
if (playing_conn == conn) { // if it's ours
}
debug_mutex_unlock(&playing_conn_lock, 3);
+ debug(2, "Cancel watchdog thread.");
+ pthread_cancel(conn->player_watchdog_thread);
+ debug(2, "Join watchdog thread.");
+ pthread_join(conn->player_watchdog_thread, NULL);
+ debug(2, "Delete watchdog mutex.");
+ pthread_mutex_destroy(&conn->watchdog_mutex);
+
debug(2, "Connection %d: RTSP thread terminated.", conn->connection_number);
conn->running = 0;
pthread_setcancelstate(oldState, NULL);