мистика..
От: MadHuman Россия  
Дата: 09.04.19 07:19
Оценка:
Всем привет!
есть код
    public class AppRequestContext{

        public int ExecTimeoutMs = 10 * 60 * 1000;

        bool _IsApiRequest;

        static readonly int _ExecTimeoutMsForApiReqUnderHighCPU = 40 * 000;

        public bool IsApiRequest {
            get { return _IsApiRequest; }
            internal set {
                if (value) {
                    if (SysUtils.CurrentCPULoad > 78) {
                        ExecTimeoutMs = _ExecTimeoutMsForApiReqUnderHighCPU;
                    } else {
                        //время макс. работы - 5мин.
                        ExecTimeoutMs = 300000;
                    }
                }
                _IsApiRequest = value;
            }
        }
    }


при выполнении такого
appCtx.IsApiRequest = true; // appCtx - инстанс класса AppRequestContext
if (appCtx.ExecTimeoutMs==0)
  Logger.LogAssert("shit happens");


иногда логируется ассерт.. причем ассерты бывают только когда система под нагрузкой.. как такое возможно?
работа с контекстом точно однопоточная.

предположительно такое стало после замены
static readonly int _ExecTimeoutMsForApiReqUnderHighCPU = 40000;

на
static readonly int _ExecTimeoutMsForApiReqUnderHighCPU = 40 * 000;

но ведь это же херь какая-то..
Re: мистика..
От: night beast СССР  
Дата: 09.04.19 07:21
Оценка: 4 (1)
Здравствуйте, MadHuman, Вы писали:

MH>на

MH>static readonly int _ExecTimeoutMsForApiReqUnderHighCPU = 40 * 000;

MH>но ведь это же херь какая-то..


а чему равно x * 0?
Re[2]: мистика..
От: MadHuman Россия  
Дата: 09.04.19 07:37
Оценка: :)
Здравствуйте, night beast, Вы писали:


NB>а чему равно x * 0?

Спасибо! Бревно то не увидел )))
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.