Распоточивание на рассвете,WaitForAny и снова метод предположения об ошибке

Jul 01, 2013 07:57




"Dolomite Wave" by Jim NilsenВчера (суббота?) слышала у метро:

- О, в том доме живёт Маша, которая начальница Саши.
- Что, пойдём устроим пикет? Свободу Саше?

Засела за распоточивание. Судя по тому, что на дворе светло (светало в полпятого) и семь утра, не зря. Добью - поставлю считать. А днём и статью можно дописать.

Опять вожусь с распоточиванием :-) При этом всё довольно просто :-) Берём volatile, берём...
public volatile object[] SyncThreads;
public WaitHandle[] WaitEventArray;
private Thread[] FillThreads;
private SPTM_Fill_Params[] FillParamsLst;

И всё сводится к мелким правкам вроде перестановок объявления из одной области вложенного цикла в другую и проверки инициализации там и сям.
Ой, "Дескриптор SafeHandle был закрыт".
...Находим строчку:
WaitEventArray[iSet].Close(); // will further wait work if array is not full?
И снова спасибо методу предположения об ошибке! Перенесли, и...
Ещё один lock, и...

По-первой 32 мсек меня повергли в шок, и не зря: нашла багу.
Ещё чуть погодя нашла ещё занятную багу: numPairs вроде 1, а через две строчки в режиме отладки она же энцать тысяч надцать. Переводим мышку: оба значения существуют одновременно. О_О Присматриваемся и понимаем, что большое число - это NumPairs. Go to definition: а это число пар в матрице смежности, а не число пар весов. Вот тебе и омонимия =)))

Сняла омонимию, заработало!

Что-то будет дальше...

2013, programming, songs, fun, imgs

Previous post Next post
Up