Purge read and write queues after a close succeeds

This commit is contained in:
Paul Hollinsky
2018-11-16 18:48:28 -05:00
parent 82adbcaba6
commit 8a147e2c3f
4 changed files with 118 additions and 71 deletions
+8 -2
View File
@@ -99,10 +99,16 @@ bool FTDI::close() {
closing = false;
bool ret = true;
if(ftdiDevice.close())
return false;
ret = false;
return true;
uint8_t flush;
WriteOperation flushop;
while(readQueue.try_dequeue(flush)) {}
while(writeQueue.try_dequeue(flushop)) {}
return ret;
}
void FTDI::readTask() {
+5
View File
@@ -256,6 +256,11 @@ bool STM32::close() {
int ret = ::close(fd);
fd = -1;
uint8_t flush;
WriteOperation flushop;
while (readQueue.try_dequeue(flush)) {}
while (writeQueue.try_dequeue(flushop)) {}
return ret == 0;
}