public int CreateReceiveSocket() { lock (_gate) { if (_state != State.Initial) { throw new InvalidOperationException($"Invalid operation: {_state}"); } var pair = Socket.CreatePair(AddressFamily.Unix, SocketType.Stream, ProtocolType.Unspecified, blocking: false); var updatedHandlers = new int[_handlers.Length + 1]; Array.Copy(_handlers, updatedHandlers, _handlers.Length); updatedHandlers[updatedHandlers.Length - 1] = pair.Socket1; _handlers = updatedHandlers; return(pair.Socket2); } }
public int CreateReceiveSocket() { lock (_gate) { if (_state != State.Initial) { throw new InvalidOperationException($"Invalid operation: {_state}"); } var pair = Socket.CreatePair(AF_UNIX, SOCK_STREAM, 0, blocking: false); var updatedHandlers = new int[_handlers.Length + 1]; Array.Copy(_handlers, updatedHandlers, _handlers.Length); updatedHandlers[updatedHandlers.Length - 1] = pair.Socket1; _handlers = updatedHandlers; return(pair.Socket2); } }