args.Completed += OnAccept;
sock.AcceptAsync (args);
prefixes = new Hashtable ();
- unregistered = Hashtable.Synchronized (new Hashtable ());
+ unregistered = new Hashtable ();
}
void LoadCertificateAndKey (IPAddress addr, int port)
return;
}
HttpConnection conn = new HttpConnection (accepted, epl, epl.secure, epl.cert, epl.key);
- epl.unregistered [conn] = conn;
+ lock (epl.unregistered) {
+ epl.unregistered [conn] = conn;
+ }
conn.BeginReadRequest ();
}
internal void RemoveConnection (HttpConnection conn)
{
- unregistered.Remove (conn);
+ lock (unregistered) {
+ unregistered.Remove (conn);
+ }
}
public bool BindContext (HttpListenerContext context)
public void Close ()
{
sock.Close ();
- lock (unregistered.SyncRoot) {
+ lock (unregistered) {
foreach (HttpConnection c in unregistered.Keys)
c.Close (true);
unregistered.Clear ();