MayaFlux 0.4.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ shutdown()

void MayaFlux::Core::UDPBackend::shutdown ( )
overridevirtual

Release all resources, close all endpoints.

After this call initialize() must be called again to reuse the backend.

Implements MayaFlux::Core::INetworkBackend.

Definition at line 60 of file UDPBackend.cpp.

61{
62 stop();
63
64 {
65 std::unique_lock lock(m_endpoints_mutex);
66 m_endpoints.clear();
67 }
68
69 {
70 std::unique_lock lock(m_sockets_mutex);
71 for (auto& [port, state] : m_sockets) {
72 asio::error_code ec;
73 if (state->socket.close(ec)) {
75 "Error closing UDP socket on port {}: {}", port, ec.message());
76 }
77 }
78 m_sockets.clear();
79 }
80
81 m_initialized.store(false);
82
84 "UDP backend shutdown");
85}
#define MF_INFO(comp, ctx,...)
#define MF_WARN(comp, ctx,...)
std::unordered_map< uint16_t, std::unique_ptr< SocketState > > m_sockets
void stop() override
Stop receive threads without releasing resources.
std::atomic< bool > m_initialized
std::unordered_map< uint64_t, EndpointRecord > m_endpoints
std::shared_mutex m_sockets_mutex
std::shared_mutex m_endpoints_mutex
@ Shutdown
Engine/subsystem shutdown and cleanup.
@ NetworkBackend
Network transport backend (UDP, TCP, SHM)
@ Core
Core engine, backend, subsystems.

References MayaFlux::Journal::Core, m_endpoints, m_endpoints_mutex, m_initialized, m_sockets, m_sockets_mutex, MF_INFO, MF_WARN, MayaFlux::Journal::NetworkBackend, MayaFlux::Journal::Shutdown, and stop().

Referenced by ~UDPBackend().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: