自定義地圖我有我的自定義地圖類堆損壞,而讀/寫在多線程應用程序
template <class TKey, class TVal> class CLSimpleMap{};
typedef CLSimpleMap<DNSServiceRef/* Descriptor*/,int/*socket*/> ClientSocketMap;
我歷數使用Bonjour API來WiFi設備。
我有兩個線程
主線程:
- 在地圖上添加ClientSocketMap和Decriptor插槽時,卓悅API回調回報插座和描述符進行處理。
- 我刪除條目時插座沒有數據接收
回調處理線程:
我做選擇,檢查插座有東西,然後推卓悅回調。
我使用Crtical部執行上ClientSocketMap
添加和刪除,但讓我吃驚的是顯示當它試圖索引描述ClientSocketMap回調處理線程堆損壞。
我不明白,爲什麼我得到這個錯誤。這是由於線程? 幫我解決問題。
只是爲了澄清,你是否在兩個線程中使用臨界區? – 2011-12-28 18:40:13
沒有更多的代碼,它是很難幫助。嘗試像valgrind這樣的內存調試器。 – 2011-12-28 19:22:40
@TimoGeusch是的我在這兩個線程中使用 – 2011-12-28 19:27:40