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);
}