VC++ 2008 Debug-Build: beliebige Operation auf STL-Container -> _Mtxlock



  • Ich habe folgendes Problem: Wenn ich im debug build beliebige Operationen auf den Standard STL-Containern durchführe, geht der Thread jedes mal in ein komisches _Mtxlock. Das sieht dann so aus: http://firbach.dyndns.org/garbage/meine_fresse.png

    Ich vermute, das ist Teil des Iterator-debuggings und soll bewirken, dass invalidierte Iteratoren auch dann erkannt werden, wenn ein anderer Thread sie manipuliert hat. Ich mache jedoch in meinem Programm massiv Gebrauch von Multithreading und jeder Thread arbeitet auf einem anderen Container (das lock ist aber global), ich kann also garantieren, dass sie sich nicht gegenseitig zerstören. Kennt jemand eine Möglichkeit, nur dieses locken abzustellen, ich möchte das Iterator-debugging generell schon behalten.

    Damit keiner denkt, es handelt sich hier um eine Kleinigkeit: Im Release-Build dauert ein Durchlauf weniger als 10 Sekunden, im Debug-Build fast 5min. Die vielen Threads synchronisieren sich gegenseitig völlig kaputt, weil sie fast nichts anderes tun, als auf STL-Containern zu arbeiten. Es läuft dadurch auch ganz erheblich viel langsamer, als wenn man die Berechnungen single-threaded durchführen würde.

    Danke im Voraus. 🙂


Anmelden zum Antworten