public void Run(PairSocket shim)
{
m_pipe = shim;
shim.SignalOK();
m_pipe.ReceiveReady += OnPipeReady;
m_pingTimer = new NetMQTimer(interval: TimeSpan.Zero);
m_pingTimer.Elapsed += PingElapsed;
m_pingTimer.Enable = false;
using (m_poller = new NetMQPoller { m_pipe, m_pingTimer })
{
m_poller.Run();
}
// the beacon might never been configured
if (m_udpSocket != null)
m_udpSocket.Close();
}