Skip to content

Commit 594a656

Browse files
committed
Fix #78
1 parent cdf65f7 commit 594a656

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

XWordGiver.cpp

+8
Original file line numberDiff line numberDiff line change
@@ -4617,7 +4617,9 @@ static unsigned __stdcall XgSolveProcSmart(void *param)
46174617
void __fastcall XgStartSolve_AddBlack(void)
46184618
{
46194619
// フラグを初期化する。
4620+
::EnterCriticalSection(&xg_csLock);
46204621
xg_bSolved = xg_bCancelled = false;
4622+
::LeaveCriticalSection(&xg_csLock);
46214623

46224624
if (xg_bSolvingEmpty)
46234625
xg_xword.clear();
@@ -4653,7 +4655,9 @@ void __fastcall XgStartSolve_AddBlack(void)
46534655
void __fastcall XgStartSolve_NoAddBlack(void) noexcept
46544656
{
46554657
// フラグを初期化する。
4658+
::EnterCriticalSection(&xg_csLock);
46564659
xg_bSolved = xg_bCancelled = false;
4660+
::LeaveCriticalSection(&xg_csLock);
46574661

46584662
#ifdef SINGLE_THREAD_MODE
46594663
XgSolveProc_NoAddBlack(&xg_aThreadInfo[0]);
@@ -4673,7 +4677,9 @@ void __fastcall XgStartSolve_NoAddBlack(void) noexcept
46734677
void __fastcall XgStartSolve_Smart(void) noexcept
46744678
{
46754679
// フラグを初期化する。
4680+
::EnterCriticalSection(&xg_csLock);
46764681
xg_bSolved = xg_bCancelled = false;
4682+
::LeaveCriticalSection(&xg_csLock);
46774683

46784684
// まだブロック生成していない。
46794685
xg_bBlacksGenerated = FALSE;
@@ -7859,8 +7865,10 @@ static unsigned __stdcall XgGenerateBlacksLineSymH(void *param)
78597865

78607866
void __fastcall XgStartGenerateBlacks(void) noexcept
78617867
{
7868+
::EnterCriticalSection(&xg_csLock);
78627869
xg_bBlacksGenerated = false;
78637870
xg_bCancelled = false;
7871+
::LeaveCriticalSection(&xg_csLock);
78647872

78657873
// 最大長を制限する。
78667874
if (xg_nMaxWordLen > xg_nDictMaxWordLen) {

0 commit comments

Comments
 (0)