aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve Markgraf <steve@steve-m.de>2020-05-26 23:10:37 +0200
committerSteve Markgraf <steve@steve-m.de>2020-05-26 23:13:31 +0200
commitb11fc430f3d033f345f22340e62857cb544e1a2a (patch)
treed7ad3037a8fa138a9865fe951721991903579186
parent44b6e3b9290991a27337b48106a5fe09c9d2df4e (diff)
downloadosmo-fl2k-b11fc430f3d033f345f22340e62857cb544e1a2a.tar.gz
osmo-fl2k-b11fc430f3d033f345f22340e62857cb544e1a2a.tar.bz2
osmo-fl2k-b11fc430f3d033f345f22340e62857cb544e1a2a.zip
lib: fix hang on exit
As the sample worker thread might still be waiting for a buffer, we need to wake it up first before trying to join.
-rw-r--r--src/libosmo-fl2k.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/libosmo-fl2k.c b/src/libosmo-fl2k.c
index 8d15581..9b42bcd 100644
--- a/src/libosmo-fl2k.c
+++ b/src/libosmo-fl2k.c
@@ -794,6 +794,9 @@ static void *fl2k_usb_worker(void *arg)
}
}
+ /* wake up sample worker */
+ pthread_cond_signal(&dev->buf_cond);
+
/* wait for sample worker thread to finish before freeing buffers */
pthread_join(dev->sample_worker_thread, NULL);
_fl2k_free_async_buffers(dev);