Название: Не получается синхронизировать потоки Отправлено: i-cpp от Апрель 06, 2010, 22:05 Всем привет, очень бональная задача, но, тем не менее, не могу никак реализовать. Помогите пожалуйста.
Задача: Сервер прослущивает порт в основном потоке. В момент нового подключения создается поток, в который передается дискриптор сокета клиента. Клиентов может подключаться неограниченное количество, т.о. потоков создаваться может множество. Во вновь созданном потоке определяется объект класса, являющегося наследником класса сокет. В этом объекте у меня и происходит совственно считывание и обработка полученных данных с сокета клиента. Переменная хранящая данные является глобальной, вследствии чего потоки не могут её поделить между собой. Организовать синхронную работу так, чтобы работало с многими потоками не как не получается. Есть ещё и вторая проблема: после очередной обработки сокета клиента и завершения потока размер занимаемой процессом памяти выростает примерно на 100кб. Хотя везде вроде где надо делаю deleteLater(). Где происходит утечка? Отладчик так и не помог понять. Код: void CServer::incomingConnection(int socketDescriptor) Код вновь создаваемого при подключении клиента потока: Код: // ---------------------------------------------------------------------- Частичный код обработки подключения: Код: #include "connection.h" Гуру помогите! Очень хочется разобраться! |