Rearrange main loop so that --net-only isn't quite such a special case.
This commit is contained in:
parent
0a055c34d0
commit
38845c2447
20
dump1090.c
20
dump1090.c
|
@ -1003,24 +1003,20 @@ int main(int argc, char **argv) {
|
||||||
|
|
||||||
// If the user specifies --net-only, just run in order to serve network
|
// If the user specifies --net-only, just run in order to serve network
|
||||||
// clients without reading data from the RTL device
|
// clients without reading data from the RTL device
|
||||||
while (Modes.net_only) {
|
if (Modes.net_only) {
|
||||||
|
while (!Modes.exit) {
|
||||||
struct timespec start_time;
|
struct timespec start_time;
|
||||||
|
|
||||||
if (Modes.exit) {
|
|
||||||
display_total_stats();
|
|
||||||
exit(0); // If we exit net_only nothing further in main()
|
|
||||||
}
|
|
||||||
|
|
||||||
start_cpu_timing(&start_time);
|
start_cpu_timing(&start_time);
|
||||||
backgroundTasks();
|
backgroundTasks();
|
||||||
end_cpu_timing(&start_time, &Modes.stats_current.background_cpu);
|
end_cpu_timing(&start_time, &Modes.stats_current.background_cpu);
|
||||||
|
|
||||||
usleep(100000);
|
usleep(100000);
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
// Create the thread that will read the data from the device.
|
// Create the thread that will read the data from the device.
|
||||||
pthread_create(&Modes.reader_thread, NULL, readerThreadEntryPoint, NULL);
|
|
||||||
pthread_mutex_lock(&Modes.data_mutex);
|
pthread_mutex_lock(&Modes.data_mutex);
|
||||||
|
pthread_create(&Modes.reader_thread, NULL, readerThreadEntryPoint, NULL);
|
||||||
|
|
||||||
while (Modes.exit == 0) {
|
while (Modes.exit == 0) {
|
||||||
struct timespec start_time;
|
struct timespec start_time;
|
||||||
|
@ -1103,14 +1099,16 @@ int main(int argc, char **argv) {
|
||||||
|
|
||||||
pthread_mutex_unlock(&Modes.data_mutex);
|
pthread_mutex_unlock(&Modes.data_mutex);
|
||||||
|
|
||||||
|
pthread_join(Modes.reader_thread,NULL); // Wait on reader thread exit
|
||||||
|
pthread_cond_destroy(&Modes.data_cond); // Thread cleanup - only after the reader thread is dead!
|
||||||
|
pthread_mutex_destroy(&Modes.data_mutex);
|
||||||
|
}
|
||||||
|
|
||||||
// If --stats were given, print statistics
|
// If --stats were given, print statistics
|
||||||
if (Modes.stats) {
|
if (Modes.stats) {
|
||||||
display_total_stats();
|
display_total_stats();
|
||||||
}
|
}
|
||||||
|
|
||||||
pthread_join(Modes.reader_thread,NULL); // Wait on reader thread exit
|
|
||||||
pthread_cond_destroy(&Modes.data_cond); // Thread cleanup - only after the reader thread is dead!
|
|
||||||
pthread_mutex_destroy(&Modes.data_mutex);
|
|
||||||
log_with_timestamp("Normal exit.");
|
log_with_timestamp("Normal exit.");
|
||||||
|
|
||||||
#ifndef _WIN32
|
#ifndef _WIN32
|
||||||
|
|
Loading…
Reference in a new issue