Mercurial > repos > blastem
comparison event_log.c @ 1955:1c7af12efe8b
Fix awful playback latencin in new netplay implementation
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Fri, 01 May 2020 21:17:21 -0700 |
parents | 5a76a7373823 |
children | 275f1c4bdb25 |
comparison
equal
deleted
inserted
replaced
1954:2fd0a8cb1c80 | 1955:1c7af12efe8b |
---|---|
379 } else if (reader->buffer.cur_pos >= reader->buffer.size/2 && reader->buffer.size >= reader->storage/2) { | 379 } else if (reader->buffer.cur_pos >= reader->buffer.size/2 && reader->buffer.size >= reader->storage/2) { |
380 memmove(reader->buffer.data, reader->buffer.data + reader->buffer.cur_pos, reader->buffer.size - reader->buffer.cur_pos); | 380 memmove(reader->buffer.data, reader->buffer.data + reader->buffer.cur_pos, reader->buffer.size - reader->buffer.cur_pos); |
381 reader->buffer.size -= reader->buffer.cur_pos; | 381 reader->buffer.size -= reader->buffer.cur_pos; |
382 reader->buffer.cur_pos = 0; | 382 reader->buffer.cur_pos = 0; |
383 } | 383 } |
384 int bytes = 128; | 384 int bytes = recv(reader->socket, reader->buffer.data + reader->buffer.size, reader->storage - reader->buffer.size, 0); |
385 while (bytes > 127 && reader->buffer.size < reader->storage) | 385 if (bytes >= 0) { |
386 { | 386 reader->buffer.size += bytes; |
387 bytes = recv(reader->socket, reader->buffer.data + reader->buffer.size, reader->storage - reader->buffer.size, 0); | 387 if (blocking && reader->buffer.size - reader->buffer.cur_pos >= 9) { |
388 if (bytes >= 0) { | 388 socket_blocking(reader->socket, 0); |
389 reader->buffer.size += bytes; | |
390 if (blocking && reader->buffer.size - reader->buffer.cur_pos >= 9) { | |
391 socket_blocking(reader->socket, 0); | |
392 } | |
393 } else if (!socket_error_is_wouldblock()) { | |
394 printf("Connection closed, error = %X\n", socket_last_error()); | |
395 } | 389 } |
390 } else if (!socket_error_is_wouldblock()) { | |
391 printf("Connection closed, error = %X\n", socket_last_error()); | |
396 } | 392 } |
397 } | 393 } |
398 uint8_t header = load_int8(&reader->buffer); | 394 uint8_t header = load_int8(&reader->buffer); |
399 uint8_t ret; | 395 uint8_t ret; |
400 uint32_t delta; | 396 uint32_t delta; |