mirror of
https://github.com/intrepidcs/libicsneo.git
synced 2026-08-05 09:28:40 +02:00
Transmits now block when the buffer fills
This commit is contained in:
@@ -39,5 +39,16 @@ bool ICommunication::readWait(std::vector<uint8_t>& bytes, std::chrono::millisec
|
||||
}
|
||||
|
||||
bool ICommunication::write(const std::vector<uint8_t>& bytes) {
|
||||
if(writeBlocks) {
|
||||
std::unique_lock<std::mutex> lk(writeMutex);
|
||||
if(writeQueue.size_approx() > writeQueueSize) {
|
||||
writeCV.wait(lk);
|
||||
}
|
||||
} else {
|
||||
if(writeQueue.size_approx() > writeQueueSize) {
|
||||
err(APIError::TransmitBufferFull);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return writeQueue.enqueue(WriteOperation(bytes));
|
||||
}
|
||||
Reference in New Issue
Block a user