Skip to content

Run as a single instance; second launch activates the existing window #10

Closed

Description

@Computer-Tsu

Background

Through 0.7.0, RigCheck could be started any number of times; each launch opened a fresh window. Noticed during the first IC-7300 bench session on 2026-09-21.

Why that is a problem

  • Two instances contend for the same COM port. The second one's Run Tests or Find my radio reports "port in use" and blames another program — which is technically true and completely misleading.
  • Both instances write %LOCALAPPDATA%\ShackDesk\RigCheck\rigcheck-settings.json; whichever closes last wins, silently discarding the other's changes.
  • Two sets of logs and telemetry reports interleave for one session.

There is no use for a second window that a single window does not serve better.

Change

From 0.7.1 RigCheck is single-instance: a second launch brings the existing window to the front and exits. Implemented with a named mutex plus a named event in App.OnStartup; the block is marked in the code with a comment pointing at this issue so the behaviour can be reverted if a reason for multiple instances ever appears (for example driving two radios on two ports at once, which would more likely be done inside one window anyway).

Reverting

Delete the single-instance block at the top of App.OnStartup in App.xaml.cs and the ActivateOnSignal helper below it. Nothing else depends on them.

Activity

  1. Computer-Tsu commented on Sep 21, 2026

    @Computer-Tsu
    OwnerAuthor

    Implemented in e071097 (0.7.1): named mutex in App.OnStartup, second launch signals the first window to the front and exits. The block is commented in App.xaml.cs with the revert steps and a pointer back here. First alpha carrying it: alpha/20260921-e071097.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions