public void Enter()
{
while (m_locked == true)
{
m_suspendedThreads.Enqueue(MicroThread.CurrentThread);
MicroThread.CurrentThread.Wait();
}
m_locked = true;
}
public MicroSocket Accept() { Print("Begin accepting"); m_readCS.Enter(); m_readingThread = MicroThread.CurrentThread; m_readingThread.Wait(); m_readingThread = null; m_readCS.Exit(); Print("Accept returned"); Socket newSocket = m_socket.Accept(); MicroSocket s = new MicroSocket(newSocket); return(s); }