Niespodziewany Access Violation i niepracujacy wątek; Linked List

0

Witam,
Niezrozumiałe problemy z programem zmusiły mnie do szukania pomocy tutaj. Otóż stworzyłem sobie prosty program, którego zadaniem było sprawdzenie szybkości jednego z trzech algorytmów (sposób porównywania nie jest tematem wątku, dodam tylko, że czytając o wywłaszczeniach itp postanowiłem porównać je na podstawie czasu wykonywania trzech podobnych programów; w moim przypadku ten sposób będzie raczej zadowalający :) ). Program działał dobrze póki powtórzeń pętli było kilkadziesiąt. Po ustawieniu na 500tyś po kilkunastu tysiącach dostałem błąd Access Violation. Przy następnej próbie program zakończył się podejrzanie szybko i na wyściu konsoli widziałem tylko push LICZBA oznaczające wstawienie elementu z dana wartością do listy. Drugi watek w ogóle nie pracował, chociaż poprzednio wszystko szło dobrze (aż do wspomnianego błędu). Mówiąc wprost nie mam bladego pojęcia co się dzieje.. :/

main.cpp
__poor_linked_list.hpp

0

Kod jest absolutnie tragiczny. Nie rozumiem jak ktoś może próbować brać się za wielowątkowość i synchronizacje skoro nie umie napisać po ludzku listy jednokierunkowej. Czemu metody wejścia do sekcji krytycznej nie są metodami danej klasy? Tak samo pop i push? Dzięki temu kod w main() miałby kilka linijek i dałoby się go czytać...
Przypuszczam ze kiedy go przepiszesz na wersję "dla ludzi" to sam znajdziesz błędy.
Na pierwszy rzut oka nie widzę od razu co jest nie tak. Ale biorąc pod uwagę co się dzieje, stawiam na to że masz problem z alokacją/dealokacją pamięci. Najprosciej będzie uruchomić to pod debuggerem (np. gdb) i zobaczyć gdzie sie wysypało. Analogicznie możesz to też uruchomić pod valgrindem i patrzeć co się dzieje z pamięcią.

1 użytkowników online, w tym zalogowanych: 0, gości: 1