--- select.cc-orig Mon Dec 10 14:01:08 2001 +++ select.cc Mon Dec 10 14:04:52 2001 @@ -862,6 +862,14 @@ struct serialinf select_record *start; }; +struct AutoReleasePort + { + AutoReleasePort(HANDLE _h) { this->h = h; } + ~AutoReleasePort() { SetCommMask (h, 0); } + private: + HANDLE h; + }; + static int peek_serial (select_record *s, bool) { @@ -878,6 +886,7 @@ peek_serial (select_record *s, bool) HANDLE h; set_handle_or_return_if_not_open (h, s); int ready = 0; + AutoReleasePort _(h); if (s->read_selected && s->read_ready || (s->write_selected && s->write_ready)) {