private static void OnUnhandledException(object sender, ThreadExceptionEventArgs exception_args) { try { SparkleLogger.WriteCrashReport(exception_args.Exception); } finally { Environment.Exit(-1); } }
public static void Main(string [] args) { if (args.Length != 0 && !args [0].Equals("start") && SparkleBackend.Platform != PlatformID.MacOSX && SparkleBackend.Platform != PlatformID.Win32NT) { string n = Environment.NewLine; Console.WriteLine(n + "SparkleShare is a collaboration and sharing tool that is" + n + "designed to keep things simple and to stay out of your way." + n + n + "Version: " + SparkleLib.SparkleBackend.Version + n + "Copyright (C) 2010 Hylke Bons" + n + "This program comes with ABSOLUTELY NO WARRANTY." + n + n + "This is free software, and you are welcome to redistribute it" + n + "under certain conditions. Please read the GNU GPLv3 for details." + n + n + "Usage: sparkleshare [start|stop|restart]"); Environment.Exit(-1); } // Only allow one instance of SparkleShare (on Windows) if (!program_mutex.WaitOne(0, false)) { Console.WriteLine("SparkleShare is already running."); Controller = new SparkleController(); Controller.Initialize(); UI = new SparkleUI(); UI.Run(); } try { Controller = new SparkleController(); Controller.Initialize(); UI = new SparkleUI(); UI.Run(); } catch (Exception e) { SparkleLogger.WriteCrashReport(e); Environment.Exit(-1); } #if !__MonoCS__ // Suppress assertion messages in debug mode GC.Collect(GC.MaxGeneration, GCCollectionMode.Forced); GC.WaitForPendingFinalizers(); #endif }