Changes between Initial Version and Version 1 of Ticket #21, comment 2
- Timestamp:
- Mar 14, 2019, 2:58:44 PM (6 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Ticket #21, comment 2
initial v1 4 4 Согласен. 5 5 6 По поводу второй части (невозобновления передачи после разрыва соединения) - уверен, что это тривиальный баг, подобный исправленному в r91, то есть при разрыве соединения просто ничего не делается. Поэтому предлагаю сосредоточиться на первой части проблемы.6 По поводу второй части (невозобновления передачи после разрыва соединения) - уверен, что это тривиальный баг, подобный исправленному в r91, то есть при разрыве соединения не делается попытка возобновить передачу. Поэтому предлагаю сосредоточиться на первой части проблемы. 7 7 8 8 Не очень понятно, по какому критерию принимать решение об "отбрасывании" данных для соединения, не готового к их приему. Один из вариантов, который пришел мне в голову, такой: если буфер заполнен данными, но при этом часть данных уже передана хотя бы в одно из соединений, то новые данные из последовательного порта принимаются (но не больше уже переданной части буфера), из "головы" буфера удаляются данные, размером с вновь полученный фрагмент (при этом те соединения, которые из еще не получили, эти данные потеряют), а вновь прочитанные из порта данные добавляются в "хвост" буфера. Таким образом, полная остановка потока произойдет только в случае, если __все__ клиентские соединения не готовы к приему новых данных.