public void Send ()
{
if (result.operation == SocketOperation.SendGeneric) {
SendGeneric ();
return;
}
// Actual send() done in the runtime
if (result.error == 0) {
UpdateSendValues (result.Total);
if (result.Sock.disposed) {
result.Complete ();
return;
}
if (result.Size > 0) {
Socket.socket_pool_queue (this.Send, result);
return; // Have to finish writing everything. See bug #74475.
}
result.Total = send_so_far;
}
result.Complete ();
}