Fix GameCube poll thread shutdown and error backoff #25

Closed
opened 2026-09-15 16:42:57 +00:00 by EIREXE · 0 comments
Owner

Severity: Reliability

GcAdapterSnapshot::drop only signals shutdown when Arc::strong_count is <= 1 at src/input/gamecube/poll.rs:70-76, but the polling thread holds a clone. The thread can therefore outlive the resource. Parse/short-read errors immediately continue at lines 114-120, potentially creating a busy loop.

Fix: signal shutdown from the owner unconditionally, retain and join a JoinHandle, and add backoff/rate limiting for recoverable read errors.

Severity: Reliability GcAdapterSnapshot::drop only signals shutdown when Arc::strong_count is <= 1 at src/input/gamecube/poll.rs:70-76, but the polling thread holds a clone. The thread can therefore outlive the resource. Parse/short-read errors immediately continue at lines 114-120, potentially creating a busy loop. Fix: signal shutdown from the owner unconditionally, retain and join a JoinHandle, and add backoff/rate limiting for recoverable read errors.
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: EIREXE/shinespark#25