LINUX.ORG.RU

создание приложения для обработки нескольких сетевых «запросов»


0

0

  Здраствуйте.
  Хочу написать приложение которое будет обрабатывать несколько
сетевых запросов одновременно. Уже немного реализовал ...  Сервер
открывает порт и ждет соединения , при соединении создается тред(нить)
 в теле которого и идет основная обработка. Все работает и все в 
порядке. Но происходит утечка памяти, так как я для каждого объекта 
класса тредов выделяю память... а вот когда удалить объект я не знаю .
.. объясните пожалуста как отслеживать выполненные треды, для удаления 
объектов?
   Спасибо. 
anonymous
Ответ на: комментарий от Dead

Если сделать pthread_join полсе его создания то пока тред не выполнится управление основной программе не будет переданно и получится что за раз приложение обрабатывает только один сетевой запрос.

anonymous
()

можно послать сигнал в конце работы потока, который будет обработан основным потоком и память освободится, например SIGUSR1

anonymous
()

Года два назад, сделал WEB-сайт для игры шахмат online...
сервер на Linux, клиенты - Java

Естественно сам шахматный сервер да и клиента я не писал,
воспользовался:
http://mychess.com/source/ChessRoom/

после получаса все заработало....

так вот там есть хорошие примеры кода, как
сервер принимает соединения от клиентов, и
корректно их обрабатывает.

За год работы сервера шаьмат не было сбоев,
так что код написан неплохо.





andyS1976
()
Ответ на: комментарий от anonymous

>можно послать сигнал в конце работы потока, который будет обработан основным потоком и память освободится, например SIGUSR1

Лучше ловить в родительском процессе SIGCHLD

infinite
()
Ответ на: комментарий от nobody

Спасибо всем что откликнулись. Сделал с тредами без сигналов. Все работает, память не растет. Тема закрыта.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.