|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
02.06.2016, 11:06 | #1 |
Форумчанин
Регистрация: 05.04.2010
Сообщений: 273
|
После завершения процесса он остается в режиме ожидания - C++
Доброго времени суток!
Написал небольшую консольную програмку на C++, работает под убунтой, задача ее простая - читать данные из com порта(ttyUSB) и передавать их по http на сервер, а также по тому же http принимать от сервера команды для передачи в com порт и собственно передавать их. С задачей мое "творение" справляется без особых проблем на протяжении уже довольно длительного времени, но есть раздражающий момент который проявляется только иногда, условий при которых это происходит я не знаю, но суть в следующем - при завершении программы если смотреть через htop она остается висеть в процессах с меткой D("состояние ожидания") и нулями в колонках "используемая память", "подкачка". Т.е. вроде как программа больше не занимает оперативку и процессор на себя не отвлекает, но в тоже время она и не закрылась до конца, в следствии чего при попытке открыв ее повторно подключиться к com порту ничего из этого не выходит, на сколько я понимаю предыдущий процесс оставил его "забитым" за собой или что-то вроде того, и это не смотря на то что я использую флаг O_NONBLOCK при открытии com порта. dmesg же при этом не показывает ничего нового, никаких отключившихся устройств ttyUSB, никаких ошибок по ним итп. Заранее спасибо за любые идеи с чем пожет быть это связано или как можно продиагностировать источник данной проблемы. |
02.06.2016, 11:10 | #2 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,709
|
Не завершили поток(и)
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Истекло время ожидания (Timeout). Время ожидания истекло до завершения операции или сервер не отвечает. | kgs_forum | C# (си шарп) | 1 | 20.08.2013 20:14 |
Процесс после завершения работы с программой остается в диспетчере зедач с++ builder | romec1 | Помощь студентам | 0 | 09.06.2010 14:07 |
Ожидание завершения процесса | Человек-Ололо | Общие вопросы Delphi | 2 | 08.03.2010 19:39 |
Как закрыть форму индикатора процесса после завершения цикла? | SkAndrew | Общие вопросы Delphi | 11 | 03.02.2010 07:39 |
Ждать завершения чужого процесса | ERASERROR | Win Api | 2 | 04.02.2008 08:23 |