Leave active thread unpaused
| 601 | |
| 602 | // Leave active thread unpaused |
| 603 | void WinDebugger::ThreadRestorePause(WdThreadInfo* onlyPauseThread, WdThreadInfo* dontPauseThread) |
| 604 | { |
| 605 | BfLogDbg("ThreadRestorePause %d %d\n", (onlyPauseThread != NULL) ? onlyPauseThread->mThreadId : 0, (dontPauseThread != NULL) ? dontPauseThread->mThreadId : 0); |
| 606 | for (auto threadInfo : mThreadList) |
| 607 | { |
| 608 | if (((threadInfo != dontPauseThread) && (!threadInfo->mIsBreakRestorePaused)) && |
| 609 | ((onlyPauseThread == NULL) || (threadInfo == onlyPauseThread))) |
| 610 | { |
| 611 | BF_ASSERT(!threadInfo->mIsBreakRestorePaused); |
| 612 | |
| 613 | BfLogDbg("SuspendThread %d\n", threadInfo->mThreadId); |
| 614 | ::SuspendThread(threadInfo->mHThread); |
| 615 | |
| 616 | threadInfo->mIsBreakRestorePaused = true; |
| 617 | } |
| 618 | } |
| 619 | } |
| 620 | |
| 621 | void WinDebugger::ThreadRestoreUnpause() |
| 622 | { |