Re[4]: BUG: LinqMetadataProvider.IsLinqObject (unstable)
От: ailin Россия  
Дата: 19.11.09 04:17
Оценка: 60 (1)
Здравствуйте, IT, Вы писали:

IT>Здравствуйте, alex.ilin, Вы писали:


AI>>Обнаружил еще одну ошибку связанную с многопоточностью (CompiledTable<T>.GetInfo) + по мере внедрения BLT и анализа логов появляются новые.


IT>Можно поподробней?


Ниже код метода CompiledTable<T>.GetInfo:



/* 1 */lock (this)
    _infos.TryGetValue(key, out info);

if (info == null)
{
/* 2 */    info = new ExpressionParser<T>().Parse(dataProvider, mappingSchema, _expression, _lambda.Parameters.ToArray());


/* 3 */    lock (this)
    {
        _infos.Add(key, info);

        _lastDataProvider  = dataProvider;
        _lastMappingSchema = mappingSchema;
        _lastInfo          = info;
    }
}


Между операциями проверки (1) и добавления (3) в словарь есть парсинг(2), он находится вне блокировки и при попытки добавления(3) иногда возникает исключение что ключ уже существует.

AI>>Постить сюда баги или есть альтернативный способ уведомления?

AI>>Имеет ли смысл прикреплять(отправить на почту, другое) "дифф"ы в случае фикса?

IT>Можно прямо в репозиторий, давай логин к гуглю, я тебя добавлю.


ilyin.alex@гмайл.к0м
Нельзя ничего сказать о глубине лужи, пока не попадешь в нее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.