Replace concurrentqueue with ringbuffer

This commit is contained in:
Jonathan Schwartz
2024-04-05 17:24:53 +00:00
parent 7d2d12c5cd
commit 63f0516318
22 changed files with 361 additions and 169 deletions
+2 -3
View File
@@ -510,9 +510,8 @@ bool TCP::close() {
if(writeThread.joinable())
writeThread.join();
uint8_t flush;
WriteOperation flushop;
while(readQueue.try_dequeue(flush)) {}
readBuffer.pop(readBuffer.size());
while(writeQueue.try_dequeue(flushop)) {}
socket.reset();
@@ -534,7 +533,7 @@ void TCP::readTask() {
uint8_t readbuf[READ_BUFFER_SIZE];
while(!closing) {
if(const auto received = ::recv(*socket, (char*)readbuf, READ_BUFFER_SIZE, 0); received > 0) {
readQueue.enqueue_bulk(readbuf, received);
readBuffer.write(readbuf, received);
} else {
timeout.tv_sec = 0;
timeout.tv_usec = 50'000;