Changes between Initial Version and Version 1 of Ticket #21, comment 2


Ignore:
Timestamp:
Mar 14, 2019, 2:58:44 PM (6 years ago)
Author:
alx

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #21, comment 2

    initial v1  
    44Согласен.
    55
    6 По поводу второй части (невозобновления передачи после разрыва соединения) - уверен, что это тривиальный баг, подобный исправленному в r91, то есть при разрыве соединения просто ничего не делается. Поэтому предлагаю сосредоточиться на первой части проблемы.
     6По поводу второй части (невозобновления передачи после разрыва соединения) - уверен, что это тривиальный баг, подобный исправленному в r91, то есть при разрыве соединения не делается попытка возобновить передачу. Поэтому предлагаю сосредоточиться на первой части проблемы.
    77
    88Не очень понятно, по какому критерию принимать решение об "отбрасывании" данных для соединения, не готового к их приему. Один из вариантов, который пришел мне в голову, такой: если буфер заполнен данными, но при этом часть данных уже передана хотя бы в одно из соединений, то новые данные из последовательного порта принимаются (но не больше уже переданной части буфера), из "головы" буфера удаляются данные, размером с вновь полученный фрагмент (при этом те соединения, которые из еще не получили, эти данные потеряют), а вновь прочитанные из порта данные добавляются в "хвост" буфера. Таким образом, полная остановка потока произойдет только в случае, если __все__ клиентские соединения не готовы к приему новых данных.