protected override void ProcessTerm(int linger)
{
// Unregister all inproc endpoints associated with this socket.
// Doing this we make sure that no new pipes from other sockets (inproc)
// will be initiated.
UnregisterEndpoints(this);
// Ask all attached pipes to terminate.
for (int i = 0; i != m_pipes.Count; ++i)
m_pipes[i].Terminate(false);
RegisterTermAcks(m_pipes.Count);
// Continue the termination process immediately.
base.ProcessTerm(linger);
}