У меня есть свой настраиваемый класс карты
template <class TKey, class TVal> class CLSimpleMap{};
typedef CLSimpleMap<DNSServiceRef/* Descriptor*/,int/*socket*/> ClientSocketMap;
Я перечисляю устройство Wi-Fi с использованием Bonjour Api.
У меня есть две темы
Основная тема:
- Добавление дескриптора и сокета в карту ClientSocketMap, когда обратный вызов Bonjour API возвращает сокет и дескриптор для обработки.
- Я удаляю запись, когда у сокета нет данных для приема
Поток обработки обратного вызова:
Я делаю select, чтобы проверить, есть ли в сокете что-то, и затем нажимаю обратный вызов Bonjour.
Яиспользуя секцию Crtical для выполнения добавления и удаления на ClientSocketMap
Но, к моему удивлению, он показывает повреждение кучи в потоке обработки обратного вызова, когда он пытается проиндексировать дескриптор ClientSocketMap.
Я не понимаю, почему я получаю эту ошибку. Это из-за потока?Помогите мне решить проблему.