mirror of
https://github.com/wailsapp/wails.git
synced 2026-03-14 14:45:49 +01:00
* 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>
24 lines
538 B
JSON
24 lines
538 B
JSON
{
|
|
"name": "@wailsapp/runtime",
|
|
"version": "2.0.0",
|
|
"description": "Wails Javascript runtime library",
|
|
"main": "runtime.js",
|
|
"types": "runtime.d.ts",
|
|
"scripts": {
|
|
},
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "git+https://github.com/wailsapp/wails.git"
|
|
},
|
|
"keywords": [
|
|
"Wails",
|
|
"Javascript",
|
|
"Go"
|
|
],
|
|
"author": "Lea Anthony <lea.anthony@gmail.com>",
|
|
"license": "MIT",
|
|
"bugs": {
|
|
"url": "https://github.com/wailsapp/wails/issues"
|
|
},
|
|
"homepage": "https://github.com/wailsapp/wails#readme"
|
|
}
|