| 842 | } |
| 843 | |
| 844 | BpThreadInfo* BpManager::SlowGetCurThreadInfo() |
| 845 | { |
| 846 | BfpThreadId curThreadId = BfpThread_GetCurrentId(); |
| 847 | // Try to find an existing one |
| 848 | { |
| 849 | AutoCrit autoCrit(mCritSect); |
| 850 | for (auto threadInfo : mThreadInfos) |
| 851 | if (threadInfo->mNativeThreadId == curThreadId) |
| 852 | return threadInfo; |
| 853 | } |
| 854 | |
| 855 | auto threadInfo = new BpThreadInfo(); |
| 856 | threadInfo->mThreadId = mCurThreadId++; |
| 857 | threadInfo->mNativeThreadId = curThreadId; |
| 858 | sBpThreadInfo = threadInfo; |
| 859 | |
| 860 | AutoCrit autoCrit(mCritSect); |
| 861 | mThreadInfos.push_back(threadInfo); |
| 862 | |
| 863 | if (mThreadRunning) |
| 864 | mRootCmdTarget.AddThread(threadInfo->mThreadId, threadInfo->mNativeThreadId); |
| 865 | |
| 866 | mTLSDtor.Add((void*)threadInfo); |
| 867 | |
| 868 | return threadInfo; |
| 869 | } |
| 870 | |
| 871 | void* BpManager::AllocBytes(int size) |
| 872 | { |
no test coverage detected