windows: only allow one SparkleShare instance at a time

This commit is contained in:
Hylke Bons 2012-03-08 23:25:37 +00:00
parent 03442b972b
commit 181496912f

View file

@ -16,6 +16,7 @@
using System;
using System.Threading;
#if __MonoCS__
using Mono.Unix;
@ -30,6 +31,8 @@ namespace SparkleShare {
public static SparkleController Controller;
public static SparkleUI UI;
public static Mutex ProgramMutex = new Mutex (false, "SparkleShare");
// Short alias for the translations
public static string _ (string s)
@ -67,6 +70,13 @@ namespace SparkleShare {
ShowHelp (option_set);
// Only allow one instance of SparkleShare
if (!ProgramMutex.WaitOne (0, false)) {
Console.WriteLine ("SparkleShare is already running.");
Environment.Exit (-1);
}
// Initialize the controller this way so that
// there aren't any exceptions in the OS specific UI's
Controller = new SparkleController ();