Пример #1
0
        private static void ProgramExit()
        {
            Ptc.Dispose();
            PtcProfiler.Dispose();

            Logger.Shutdown();
        }
Пример #2
0
        public static void Exit()
        {
            DiscordIntegrationModule.Exit();

            Ptc.Dispose();
            PtcProfiler.Dispose();

            Logger.Shutdown();
        }
Пример #3
0
        private static void Glib_UnhandledException(GLib.UnhandledExceptionArgs e)
        {
            Exception exception = e.ExceptionObject as Exception;

            Logger.PrintError(LogClass.Application, $"Unhandled exception caught: {exception}");

            Ptc.Close();
            PtcProfiler.Stop();

            if (e.IsTerminating)
            {
                Logger.Shutdown();

                Ptc.Dispose();
                PtcProfiler.Dispose();
            }
        }
Пример #4
0
        private void End(HLE.Switch device)
        {
#if USE_DEBUGGING
            _debugger.Dispose();
#endif

            if (_ending)
            {
                return;
            }

            _ending = true;

            if (device != null)
            {
                UpdateGameMetadata(device.Application.TitleIdText);

                if (_glWidget != null)
                {
                    // We tell the widget that we are exiting
                    _glWidget.Exit();

                    // Wait for the other thread to dispose the HLE context before exiting.
                    _deviceExitStatus.WaitOne();
                }
            }

            Dispose();

            Profile.FinishProfiling();
            DiscordIntegrationModule.Exit();

            Ptc.Dispose();
            PtcProfiler.Dispose();

            Logger.Shutdown();

            Application.Quit();
        }