wails/v2/pkg
Lea Anthony 01b661f6a5
feat(v2): add runtime.ResetSignalHandlers() for Linux panic recovery (#4921)
* feat(v2): add runtime.ResetSignalHandlers() for Linux panic recovery

Add a new runtime function that allows users to reset signal handlers
before code that might panic from nil pointer dereferences.

On Linux, WebKit installs signal handlers without the SA_ONSTACK flag,
which prevents Go from properly recovering from panics caused by
SIGSEGV and other signals. This function adds SA_ONSTACK to the
relevant signal handlers (SIGSEGV, SIGBUS, SIGFPE, SIGABRT).

Usage:
```go
go func() {
    defer func() {
        if err := recover(); err != nil {
            log.Printf("Recovered: %v", err)
        }
    }()
    runtime.ResetSignalHandlers()
    // Code that might panic...
}()
```

The function is a no-op on macOS and Windows.

Fixes #3965

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* test(v2): add panic-recovery-test example

Add an example that demonstrates the Linux signal handler issue (#3965)
and verifies the fix using runtime.ResetSignalHandlers().

The example includes:
- A Greet function that triggers a nil pointer dereference after a delay
- Auto-call from frontend after 5 seconds
- README with reproduction steps

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 18:55:57 +11:00
..
application [chore] lint fixes 2023-11-12 12:30:49 +11:00
assetserver FIX: Address Mac CGO Crash (#3590) 2024-08-20 18:12:56 +10:00
buildassets Fix for webview2 detection 2025-04-12 13:21:37 +10:00
clilogger Releasetest/release workflow (#1869) 2022-09-18 08:55:21 +10:00
commands fix: cross compiling on linux for windows (#4263) 2025-05-19 21:16:10 +10:00
git Fixed an error that occurred when an author name contains a string that is not suitable for JSON (#3638) 2024-07-29 21:34:19 +10:00
logger fix dev mode logging bug (#3972) 2025-01-23 11:12:18 +00:00
mac chore: fix function names in comment (#3383) 2024-04-09 17:19:06 -05:00
menu chore: fix some comments (#3932) 2024-12-06 14:35:46 +11:00
options Update windows.go 2025-11-04 08:41:29 +11:00
runtime feat(v2): add runtime.ResetSignalHandlers() for Linux panic recovery (#4921) 2026-02-02 18:55:57 +11:00
templates fix: add missing EventsOffAll export to runtime templates (#4883) 2026-01-25 13:10:24 +11:00