private void RebuildPollset()
{
m_pollSize = m_sockets.Count + m_pollinSockets.Count;
// Recreate the m_pollset and m_pollact arrays.
m_pollset = new SelectItem[m_pollSize];
m_pollact = new NetMQSocket[m_sockets.Count];
// For each socket in m_sockets,
// put a corresponding SelectItem into the m_pollset array and a reference to the socket itself into the m_pollact array.
uint itemNbr = 0;
foreach (var socket in m_sockets)
{
m_pollset[itemNbr] = new SelectItem(socket.SocketHandle, socket.GetPollEvents());
m_pollact[itemNbr] = socket;
itemNbr++;
}
foreach (var socket in m_pollinSockets)
{
m_pollset[itemNbr] = new SelectItem(socket.Key, PollEvents.PollError | PollEvents.PollIn);
itemNbr++;
}
// Mark this as NOT having any fresh events to attend to, as yet.
m_isDirty = false;
}