private void CreateMutexCore(bool initiallyOwned, string?name, out bool createdNew) { if (name != null) { SafeWaitHandle?safeWaitHandle = WaitSubsystem.CreateNamedMutex(initiallyOwned, name, out createdNew); if (safeWaitHandle == null) { throw new WaitHandleCannotBeOpenedException(SR.Format(SR.Threading_WaitHandleCannotBeOpenedException_InvalidHandle, name)); } SafeWaitHandle = safeWaitHandle; return; } SafeWaitHandle = WaitSubsystem.NewMutex(initiallyOwned); createdNew = true; }