| 657 | } |
| 658 | |
| 659 | BfCodeGen::~BfCodeGen() |
| 660 | { |
| 661 | if (mIsUsingReleaseThunk) |
| 662 | mKillFunc(); |
| 663 | |
| 664 | if (mReleaseModule != NULL) |
| 665 | BfpDynLib_Release(mReleaseModule); |
| 666 | |
| 667 | ClearOldThreads(true); |
| 668 | |
| 669 | for (auto thread : mThreads) |
| 670 | { |
| 671 | thread->mShuttingDown = true; |
| 672 | } |
| 673 | mRequestEvent.Set(true); |
| 674 | |
| 675 | for (auto thread : mThreads) |
| 676 | { |
| 677 | thread->Shutdown(); |
| 678 | delete thread; |
| 679 | } |
| 680 | |
| 681 | for (auto request : mRequests) |
| 682 | { |
| 683 | delete request; |
| 684 | } |
| 685 | |
| 686 | for (auto& entry : mDirectoryCache) |
| 687 | delete entry.mValue; |
| 688 | } |
| 689 | |
| 690 | void BfCodeGen::ResetStats() |
| 691 | { |
nothing calls this directly
no test coverage detected