VS2015를 사용 중입니다.릴리스 모드에서 동일 작업이 올바르게 실행되지 않습니다.
루프가 올바르게 작동하는 동안 디버그 모드가 강조 표시되어 있습니다. !P_Object->first_request
이 true 일 때 디버깅 모드가 강조 표시됩니다.
그러나 릴리스 모드에서는 동일한 조건이 작동하지 않습니다. 또한 빠른보기에서 Visual Studio 빠른보기가 !P_Object->first_request
을 false로 인식하지만 반복되는 반복을 볼 수 있습니다.
BTW : P_Object->first_request
변수가 false로 초기화되고 스레드 (아마도이 정보가 도움이 될 것입니다 - idk)에서 true로 변경됩니다.
DEBUG Command line - "/GS /analyze- /W3 /Zc:wchar_t /I"C:\boost_1_62_0" /ZI /Gm /Od /Fd"Debug\vc140.pdb" /Zc:inline /fp:precise /D "WIN32" /D "WIN32_LEAN_AND_MEAN_DEBUG" /D "_CONSOLE" /D "_UNICODE" /D "UNICODE" /errorReport:prompt /WX- /Zc:forScope /RTC1 /Gd /Oy- /MTd /Fa"Debug\" /EHsc /nologo /Fo"Debug\" /Fp"Debug\ExpenditureAndReceipts.pch"";
RELEASE Command line - "/GS /analyze- /W3 /Gy /Zc:wchar_t /I"C:\boost_1_62_0" /Zi /Gm- /O2 /Fd"Release\vc140.pdb" /Zc:inline /fp:precise /D "WIN32" /D "WIN32_LEAN_AND_MEANNDEBUG" /D "_CONSOLE" /D "_UNICODE" /D "UNICODE" /errorReport:prompt /WX- /Zc:forScope /Gd /Oy- /Oi /MT /Fa"Release\" /EHsc /nologo /Fo"Release\" /Fp"Release\ExpenditureAndReceipts.pch"";
루프가 아무 것도하지 않기 때문에 최적화 된 것 같습니다. – pm100
변수'volatile'을 표시하여 컴파일러에게 최적화를 최적화하지 않도록 할 수 있습니다. –
적절한 스레드 간 동기화를 사용해야합니다 (변수에 '휘발성'을 두지 않음). 원자 데이터 유형, 임계 섹션, 뮤텍스 또는 기타 적절한 것을 사용하십시오. –