コード例 #1
0
ファイル: parser.cpp プロジェクト: Three-DS/codeblocks-13.12
Parser::~Parser()
{
    CC_LOCKER_TRACK_P_MTX_LOCK(ParserCommon::s_ParserMutex)

    DisconnectEvents();
    TerminateAllThreads();

    if (ParserCommon::s_CurrentParser == this)
        ParserCommon::s_CurrentParser = nullptr;

    CC_LOCKER_TRACK_P_MTX_UNLOCK(ParserCommon::s_ParserMutex)
}
コード例 #2
0
ファイル: parser.cpp プロジェクト: stahta01/codeblocks_r7456
Parser::~Parser()
{
    TRACK_THREAD_LOCKER(s_ParserCritical);
    wxCriticalSectionLocker locker(s_ParserCritical);
    THREAD_LOCKER_SUCCESS(s_ParserCritical);

    DisconnectEvents();
    TerminateAllThreads();

    if (s_CurrentParser == this)
        s_CurrentParser = nullptr;
}
コード例 #3
0
ファイル: parser.cpp プロジェクト: Distrotech/codeblocks
Parser::~Parser()
{
    // Don't wrap the s_ParserMutex lock around TerminateAllThreads(), since, it will cause a deadlock
    // in TerminateAllThreads() when calling DeleteParser() before parsing has finished.

    DisconnectEvents();
    TerminateAllThreads();

    CC_LOCKER_TRACK_P_MTX_LOCK(ParserCommon::s_ParserMutex)

    if (ParserCommon::s_CurrentParser == this)
        ParserCommon::s_CurrentParser = nullptr;

    CC_LOCKER_TRACK_P_MTX_UNLOCK(ParserCommon::s_ParserMutex)
}