Descriptionchrome.serial: [POSIX] Queue *Completed() callback in Cancel*Impl()
On Mac, Linux and Chrome OS, when a call is made to SerialIoHandler::CancelRead() or SerialIoHandler::CancelWrite(), no callback to SerialIoHandler:ReadCompleted() or SerialIoHandler::WriteCompleted() is triggered in the underlying implementation, as it is on Windows. This causes the cleanup code in SerialConnection::OnAsync*Complete() to never be executed. To fix the behaviour, call SerialIoHandler::Queue*Completed() directly from SerialIoHandlerPosix::Cancel*Impl().
The only code changes are in serial_io_handler_posix.cc, so there should be no effect on Windows.
BUG=383221
R=rockot@chromium.org
TEST=Toggle chrome.serial.setPaused() true then false; more detail and a link to a test app is provided in crbug.com/383221
Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=278130
Patch Set 1 #Messages
Total messages: 5 (0 generated)
|