public void enableWrite()
{
if (sock == null)
return;
if (!sock.Connected) close();
lock (close_mutex)
{
if (closed) return;
}
if (!expecting_write && poll_set != null)
{
//Console.WriteLine("ENABLE WRITE: " + Topic + "(" + sock.FD + ")");
expecting_write = true;
poll_set.addEvents(sock, POLLOUT);
}
}
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(); } } }