public void Write(int fd, byte[] buffer, long offset, long length, Action <int, int> callback) { Libeio.write(fd, buffer, offset, length, (arg1, arg2) => { outstanding.Enqueue(() => callback(arg1, arg2)); pulse.Send(); }); }
protected override int WriteSingleBuffer(ByteBuffer buffer) { var bytes = buffer.Bytes; if (buffer.Position > 0) { bytes = new byte[buffer.Length]; Array.Copy(buffer.Bytes, buffer.Position, bytes, 0, buffer.Length); } Libeio.write(Handle.ToInt32(), bytes, position, buffer.Length, OnWriteDone); return(buffer.Length); }