public void Start() { ThreadPool.QueueUserWorkItem(delegate { while (!_shutdownInProgress) { try { m2net.Request acceptedSocket = _mongrel2Connection.Receive(); ThreadPool.QueueUserWorkItem(delegate { if (!_shutdownInProgress) { var conn = new Connection(this, acceptedSocket); //// wait for at least some input //if (conn.WaitForRequestBytes() == 0) //{ // conn.WriteErrorAndClose(400); // return; //} // find or create host Host host = GetHost(); if (host == null) { conn.WriteErrorAndClose(500); return; } // process request in worker app domain host.ProcessRequest(conn); } }); } catch { Thread.Sleep(100); } } }); }
public void Close() { _mongrel2Request = null; }
public void Close() { _mongrel2Request = null; }
internal Connection(Server server, m2net.Request mongrel2Request) { _server = server; _mongrel2Request = mongrel2Request; }
internal Connection(Server server, m2net.Request mongrel2Request) { _server = server; _mongrel2Request = mongrel2Request; }