-

   rss_forum_sources_ru

 - e-mail

 

 -

 LiveInternet.ru:
: 29.07.2007
:
:
: 80

:


goto vs break & continue

, 21 2020 . 00:41 +
Qraizer:
JoeUser @
, - , - . .
RAII. RAII , , {}, , , , . , . "", ... , :
    //
    HANDLE sameApp = CreateMutex(NULL, TRUE, uniqName.c_str());
    //
    if (sameApp == NULL)
    return static_cast(logMsg("CreateMutex() failed", GetLastError()));
    //
    Guard sameAppGuarded([=]() { CloseHandle(sameApp); });
    // , (GetLastError() ERROR_ALREADY_EXISTS) -
    if (GetLastError() == ERROR_ALREADY_EXISTS)
    if (WaitForSingleObject(sameApp, INFINITE) != WAIT_OBJECT_0) //
    //
    return static_cast(logMsg("Recursive run detected for " + name.filename().string(), GetLastError()));
    // ,
    Guard sameAppLocked([=]() { ReleaseMutex(sameApp); });
    // , /
    {
    SECURITY_ATTRIBUTES attr = { sizeof(attr), NULL, TRUE };
    //
    HANDLE hIn = CreateFile((newName.parent_path() / "stdin.txt").string().c_str(),
    FILE_GENERIC_READ, FILE_SHARE_DELETE,&attr, CREATE_ALWAYS,
    FILE_ATTRIBUTE_NORMAL, NULL);
    //
    Guard hInGuarded ([=]() { CloseHandle(hIn); });
    /* ,
    */
    }
    // , / .
    // , ,
{}, , . . .

https://forum.sources.ru/index.php?showtopic=362619&view=findpost&p=3834762

:  

: [1] []
 

:
: 

: ( )

:

  URL