Re: [Boost-users] Problem with named_mutex on Windows
I just realised it's not hanging - it's thrown an interprocess exception. I have revised my code to capture and report on that. I will let you know what it says. David From: David C. Partridge <david.partridge@perdrix.co.uk> Sent: 13 November 2023 14:16 To: 'boost-users@lists.boost.org' <boost-users@lists.boost.org> Subject: Problem with named_mutex on Windows I have a user reporting that the following code in my application's main() hangs unless he uses "Run as Adminstrator": ZTRACE_RUNTIME("Checking Mutex"); bip::named_mutex dssMutex{ bip::open_or_create, "DeepSkyStacker.Mutex.UniqueID.12354687" }; bip::scoped_lock<bip::named_mutex> lk(dssMutex, bip::defer_lock); const bool firstInstance{ lk.try_lock() }; ZTRACE_RUNTIME(" firstInstance: %s", firstInstance ? "true" : "false"); The trace shows "Checking mutex" and then it all stops. Is my code in error and if so what do I need to change? If not, how can I determine what the problem is? On a related issue: I think that this is C++ Exception safe, as the mutex will be unlocked and deleted. However, if a C exception occurs then how should I clean up? Is the named_mutex persistent over reboots? If so, where is it held (in case I need to do a manual cleanup). Many thanks David
And of course the user installed the new code and the problem didn't occur any more (he had re-booted since the initial problem report). From: Boost-users <boost-users-bounces@lists.boost.org> On Behalf Of David C. Partridge via Boost-users Sent: 14 November 2023 14:25 To: boost-users@lists.boost.org Cc: David C. Partridge <david.partridge@perdrix.co.uk> Subject: Re: [Boost-users] Problem with named_mutex on Windows I just realised it's not hanging - it's thrown an interprocess exception. I have revised my code to capture and report on that. I will let you know what it says. David From: David C. Partridge <david.partridge@perdrix.co.uk <mailto:david.partridge@perdrix.co.uk> > Sent: 13 November 2023 14:16 To: 'boost-users@lists.boost.org' <boost-users@lists.boost.org <mailto:boost-users@lists.boost.org> > Subject: Problem with named_mutex on Windows I have a user reporting that the following code in my application's main() hangs unless he uses "Run as Adminstrator": ZTRACE_RUNTIME("Checking Mutex"); bip::named_mutex dssMutex{ bip::open_or_create, "DeepSkyStacker.Mutex.UniqueID.12354687" }; bip::scoped_lock<bip::named_mutex> lk(dssMutex, bip::defer_lock); const bool firstInstance{ lk.try_lock() }; ZTRACE_RUNTIME(" firstInstance: %s", firstInstance ? "true" : "false"); The trace shows "Checking mutex" and then it all stops. Is my code in error and if so what do I need to change? If not, how can I determine what the problem is? On a related issue: I think that this is C++ Exception safe, as the mutex will be unlocked and deleted. However, if a C exception occurs then how should I clean up? Is the named_mutex persistent over reboots? If so, where is it held (in case I need to do a manual cleanup). Many thanks David
participants (1)
-
David C. Partridge