Jackett/src/Jackett.Common/Services/TrayLockService.cs

39 lines
945 B
C#
Raw Normal View History

2015-11-18 19:36:37 +00:00
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
Feature/netcore preparation (#2035) * Move to use package reference for restoring nuget packages. * Return a task result for this async method. * Update to a supported version of the .NET Framework. This also has the side effect of allowing us to automatically generate our binding redirects on build. * Set the solution to target VS2017 * Update test solution csproj file to support being built through MSBuild 15 * Move to use package reference for restoring nuget packages. * Return a task result for this async method. * Update to a supported version of the .NET Framework. This also has the side effect of allowing us to automatically generate our binding redirects on build. * Set the solution to target VS2017 * Update test solution csproj file to support being built through MSBuild 15 * DateTimeRoutines does not have Nuget packages that support .NET Standard (and therefore .NET Core). We will have to include them for now until we can get rid of this dependency. * Move the interfaces into their own files. This will be useful when we share them between the .NET Core and .NET Framework WebAPI * Stage services that need to point to the new interface namespace. * Update CurlSharp to fix memory leak issue and support better runtime compatibility with OSX and Linux * Start spliting some interfaces into their own files - this will help by allowing us to split them out in the future into a seperate project so the actual implementations can stay within their respective architectures when required
2017-10-29 10:19:09 +00:00
using Jackett.Services.Interfaces;
2015-11-18 19:36:37 +00:00
namespace Jackett.Services
{
public class TrayLockService : ITrayLockService
{
private readonly string EVENT_HANDLE_NAME = "JACKETT.TRAY";
private EventWaitHandle GetEventHandle()
{
return new EventWaitHandle(false, EventResetMode.ManualReset, EVENT_HANDLE_NAME);
}
public void WaitForSignal()
{
if (System.Environment.OSVersion.Platform != PlatformID.Unix)
{
GetEventHandle().Reset();
GetEventHandle().WaitOne();
}
}
public void Signal()
{
if (System.Environment.OSVersion.Platform != PlatformID.Unix)
{
GetEventHandle().Set();
}
}
}
}