System.Net.EndPointListener.RemoveSpecial C# (CSharp) Method

RemoveSpecial() private method

private RemoveSpecial ( ArrayList coll, System.Net.ListenerPrefix prefix ) : void
coll System.Collections.ArrayList
prefix System.Net.ListenerPrefix
return void
		void RemoveSpecial (ArrayList coll, ListenerPrefix prefix)
		{
			if (coll == null)
				return;

			try {
				plock.AcquireReaderLock (-1);
				int c = coll.Count;
				for (int i = 0; i < c; i++) {
					ListenerPrefix p = (ListenerPrefix) coll [i];
					if (p.Path == prefix.Path) {
						plock.UpgradeToWriterLock (-1);
						coll.RemoveAt (i);
						CheckIfRemove ();
						return;
					}
				}
			} finally {
				try {
					plock.ReleaseReaderLock (); // Releases the writer lock if held
				} catch {}
			}
		}