public void write(byte[] data, int size, WriteFinishedFunc finished_func, bool immediate) { if (dropped || sendingHeaderError) { return; } lock (write_callback_mutex) { if (write_callback != null) { writeTransport(); } if (write_callback != null) { throw new Exception("Not finished writing previous data on this connection"); } write_callback = finished_func; write_buffer = data; write_size = size; transport.enableWrite(); if (immediate) { writeTransport(); } } }