nuget-extensions/nuget-runner/src/NuGetRunMutex.cs (13 lines of code) (raw):
using System.Threading;
namespace JetBrains.TeamCity.NuGetRunner
{
public class NuGetRunMutex
{
public NuGetRunMutex(NuGetRunner runner)
{
var m = new Mutex(false, "JetBrains.TeamCity.NuGet.RunMutex");
runner.BeforeNuGetStarted += (_, __) => m.WaitOne();
runner.AfterNuGetFinished += (_, __) => m.ReleaseMutex();
}
}
}