Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

check for windows installer mutex availability

In one of my integration tests, I have two threads that uninstall then install a program but when run in sequence they generate an error Failed to grab execution mutex. System error 258.

To get around this I have to sleep after the uninstall. I tried checking if the msiexec process was running but there were consistently 2-3 so it's not a good indicator. Is there a way to check if the msiexec execution mutex is available?

like image 653
probably at the beach Avatar asked Apr 13 '12 15:04

probably at the beach


1 Answers

    bool msiIsRunning = false;
    try
    {
        using(var mutex = Mutex.OpenExisting(@"Global\_MSIExecute"))
        {
            msiIsRunning = true;
        }
    }
    catch (Exception)
    {
       // Mutex not found; MSI isn't running
    }
like image 116
Christopher Painter Avatar answered Oct 13 '22 15:10

Christopher Painter