MCPcopy Create free account
hub / github.com/PCSX2/pcsx2 / ~SocketAdapter

Method ~SocketAdapter

pcsx2/DEV9/sockets.cpp:591–630  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

589}
590
591SocketAdapter::~SocketAdapter()
592{
593 //Force close all sessions
594 std::vector<ConnectionKey> keys = connections.GetKeys();
595 DevCon.WriteLn("DEV9: Socket: Closing %d Connections", keys.size());
596 for (size_t i = 0; i < keys.size(); i++)
597 {
598 const ConnectionKey key = keys[i];
599 BaseSession* session;
600 if (!connections.TryGetValue(key, &session))
601 continue;
602 delete session;
603 }
604 connections.Clear();
605 fixedUDPPorts.Clear(); //fixedUDP sessions already deleted via connections
606
607 //Clear out any delete queues
608 DevCon.WriteLn("DEV9: Socket: Found %d Connections in send delete queue", deleteQueueSendThread.size());
609 DevCon.WriteLn("DEV9: Socket: Found %d Connections in recv delete queue", deleteQueueRecvThread.size());
610 for (BaseSession* s : deleteQueueSendThread)
611 delete s;
612 for (BaseSession* s : deleteQueueRecvThread)
613 delete s;
614 deleteQueueSendThread.clear();
615 deleteQueueRecvThread.clear();
616
617 //Clear out vRecBuffer
618 while (!vRecBuffer.IsQueueEmpty())
619 {
620 EthernetFrame* retPay;
621 if (!vRecBuffer.Dequeue(&retPay))
622 {
623 using namespace std::chrono_literals;
624 std::this_thread::sleep_for(1ms);
625 continue;
626 }
627
628 delete retPay;
629 }
630}

Callers

nothing calls this directly

Calls 8

GetKeysMethod · 0.80
IsQueueEmptyMethod · 0.80
DequeueMethod · 0.80
WriteLnMethod · 0.45
sizeMethod · 0.45
TryGetValueMethod · 0.45
ClearMethod · 0.45
clearMethod · 0.45

Tested by

no test coverage detected