public MainDomSemaphoreLock(ILogger <MainDomSemaphoreLock> logger, IHostingEnvironment hostingEnvironment)
        {
            var mainDomId = MainDom.GetMainDomId(hostingEnvironment);
            var lockName  = "UMBRACO-" + mainDomId + "-MAINDOM-LCK";

            _systemLock = new SystemLock(lockName);

            var eventName = "UMBRACO-" + mainDomId + "-MAINDOM-EVT";

            _signal = new EventWaitHandle(false, EventResetMode.AutoReset, eventName);
            _logger = logger;
        }
        public MainDomSemaphoreLock(ILogger <MainDomSemaphoreLock> logger, IHostingEnvironment hostingEnvironment)
        {
            if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
            {
                throw new PlatformNotSupportedException("MainDomSemaphoreLock is only supported on Windows.");
            }

            var mainDomId = MainDom.GetMainDomId(hostingEnvironment);
            var lockName  = "UMBRACO-" + mainDomId + "-MAINDOM-LCK";

            _systemLock = new SystemLock(lockName);

            var eventName = "UMBRACO-" + mainDomId + "-MAINDOM-EVT";

            _signal = new EventWaitHandle(false, EventResetMode.AutoReset, eventName);
            _logger = logger;
        }