Я только начинаю изучать, как работает сетевое программирование на C, и я написал небольшую программу, которая отправляет сообщения в терминал UNIX и из него. Я использую pthreads в своей программе, одна из которых, по сути, просто ждет recvfrom()
, чтобы получить сообщение.
Однако я хочу иметь возможность правильно закрывать все потоки, если пользователь решит выйти из программы. Как я сейчас это настроил, другой поток просто отменяет поток, ожидающий на recvfrom, но я беспокоюсь, что это может быть плохой идеей, так как я оставляю сокеты незакрытыми и не освобождаю всю память выделяется.
Есть ли способ отменить recvfrom()
вызов или какой-либо способ запустить определенную процедуру после отмены pthread?
Спасибо.