по ходу, как минимум в HostTCP/Lin баг: неправильно выставляется non-blocking для сокетов, поэтому читалка тупо уходит в блок. я у себя заодно переделал на линукс-специфичные вызовы, без ioctl. в итоге ни BB, ни браузер больше не блочатся, но… есть другая проблема: O3 не детектит ситуацию "connection closed by peer", и крутит пустой recv пока не случится таймаут. я не очень понял, специфика ли это неблокирующих сокетов, или я/O3 таки что-то делают не так.

а, отбой тревоги: это PaleMoon держит сокет на всякий случай. если пойти через telnet, то всё корректно, закрытие ловится как надо.

а-а-а, всё ещё смешнее! ребята зачем-то HTTP/1.1 сделали по спекам, а не как все остальные. при HTTP/1.0 O3 сразу после первого запроса сокет закрывает, а при 1.1 — держит открытым. насколько помню, по спекам-то это вроде бы правильно, а на деле… ну, так поступают далеко не все.