Hi.
Since there's no discussion, I'll write a little more about that extra delay issue.
I noticed there is a 1 second delay in librtlsdr between calling rtlsdr_cancel_async and releasing from rtlsdr_read_async. I'm writing a
1) I suggest to incorporate the first of my two fixes into the master branch. The first fix sholdn't break anything, it works well for me and fixes the delay bug. I moved on to my other projects, and ain't going to investigate this problem any more.
And the two possible fixes for 1 second delay bug depending on the answer are (diffs): === 1630a1631
struct timeval tv_nb = { 0, 0 };
1696c1697
< libusb_handle_events_timeout(dev->ctx, &tv);
libusb_handle_events_timeout(dev->ctx, &tv_nb);===
2) There was an error in my second fix: I obviously should have removed only the libusb_handle_events_timeout line, not the whole `if'.
=== 1694,1698d1693 < < if (dev->dev_lost || RTLSDR_INACTIVE == next_status) { < libusb_handle_events_timeout(dev->ctx, &tv); < break;
< }
-- GPG fp: 6DFA 1186 7576 DE60 6CCB EB39 AD81 1733 EEBB 970A