]> git.sesse.net Git - cubemap/blobdiff - server.cpp
Small microoptimization in do_work().
[cubemap] / server.cpp
index 9517b5480e5f55ce6c5decee9ab6ad726edf3167..a11b55f72e6f62d7e1401925e4c113a58df9ceec 100644 (file)
@@ -363,6 +363,8 @@ sending_data_again:
                                client->sock,
                                (long long int)(bytes_to_send - stream->backlog_size));
                        client->stream_pos = stream->bytes_received - stream->backlog_size;
+                       client->bytes_lost += bytes_to_send - stream->backlog_size;
+                       ++client->num_loss_events;
                        bytes_to_send = stream->backlog_size;
                }
 
@@ -392,12 +394,13 @@ sending_data_again:
                        return;
                }
                client->stream_pos += ret;
+               client->bytes_sent += ret;
 
                if (client->stream_pos == stream->bytes_received) {
                        // We don't have any more data for this client, so put it to sleep.
                        // This is postcondition #3.
                        stream->put_client_to_sleep(client);
-               } else if (more_data) {
+               } else if (more_data && ret == bytes_to_send) {
                        goto sending_data_again;
                }
                break;