~ruther/NosTale-PacketLogger

a0c91cb895c3181506eee31609ac0a98e5d6288a — Rutherther 2 years ago 088a470
fix: handle exceptions from IsProcessNostaleProcess
1 files changed, 21 insertions(+), 20 deletions(-)

M src/PacketLogger/Models/NostaleProcesses.cs
M src/PacketLogger/Models/NostaleProcesses.cs => src/PacketLogger/Models/NostaleProcesses.cs +21 -20
@@ 95,17 95,16 @@ public class NostaleProcesses : IDisposable
        try
        {
            process = Process.GetProcessById(processId);
            if (!NosBrowserManager.IsProcessNostaleProcess(process))
            {
                return;
            }
        }
        catch (Exception)
        {
            return;
        }

        if (!NosBrowserManager.IsProcessNostaleProcess(process))
        {
            return;
        }

        NosBrowserManager nosBrowserManager = new NosBrowserManager
        (
            process,


@@ 126,13 125,14 @@ public class NostaleProcesses : IDisposable
        if (nosBrowserManager.IsModuleLoaded<PlayerManager>())
        {
            RxApp.MainThreadScheduler.Schedule
                (() =>
                    {
                        _semaphore.Wait();
                        Processes.Add(new NostaleProcess(process, nosBrowserManager));
                        _semaphore.Release();
                    }
                );
            (
                () =>
                {
                    _semaphore.Wait();
                    Processes.Add(new NostaleProcess(process, nosBrowserManager));
                    _semaphore.Release();
                }
            );
        }
        else
        {


@@ 152,14 152,15 @@ public class NostaleProcesses : IDisposable
            if (process is not null)
            {
                RxApp.MainThreadScheduler.Schedule
                    (() =>
                        {
                            process.ObserveChanges();
                            _semaphore.Wait();
                            Processes.Remove(process);
                            _semaphore.Release();
                        }
                    );
                (
                    () =>
                    {
                        process.ObserveChanges();
                        _semaphore.Wait();
                        Processes.Remove(process);
                        _semaphore.Release();
                    }
                );
            }
        }
    }