} // CachedSocketList internal SocketHandler GetSocket() { if (_socketCount == 0) { return(null); } lock (this) { if (_socketList != null) { SocketHandler socket = _socketList.Handler; _socketList = _socketList.Next; bool bRes = socket.RaceForControl(); // We should always have control since there shouldn't // be contention here. InternalRemotingServices.RemotingAssert(bRes, "someone else has the socket?"); _socketCount--; return(socket); } } return(null); } // GetSocket
internal SocketHandler GetSocket() { if (this._socketCount != 0) { lock (this) { if (this._socketList != null) { SocketHandler handler = this._socketList.Handler; this._socketList = this._socketList.Next; handler.RaceForControl(); this._socketCount--; return handler; } } } return null; }