public void read(uint size, ReadFinishedFunc finished_func)
{
if (dropped || sendingHeaderError)
{
return;
}
lock (read_mutex)
{
if (read_callback != null)
{
throw new Exception("NOYOUBLO");
}
read_callback = finished_func;
if (size == 4)
{
read_buffer = length_buffer;
}
else
{
if (real_read_buffer == null || real_read_buffer.Length != size)
{
real_read_buffer = new byte[size];
}
read_buffer = real_read_buffer;
}
read_size = size;
read_filled = 0;
transport.enableRead();
readTransport();
}
}