Repository navigation
pinmame: stop native emulation before editor assembly reload - #47
Merged
Merged
Conversation
[Medium impact] The PR appears safe to merge; no blocking issues were found. SummaryStops PinMAME before Unity reloads its scripting assemblies.
No actionable issues were found.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Recompiling scripts while PinMAME was running could leave its native emulation thread holding callbacks from an unloaded Unity scripting domain. A later stop then jumped through an invalid managed callback and crashed the editor.
Stop simulation and synchronously stop/join PinMAME before assembly reload, including inactive tables and finished native threads. Release the time fence even without a scene engine. Only detach scene-engine callbacks while playing so edit-mode hot reload preserves the flags needed for the next Play session. The existing play-mode-exit and editor-quit paths use the same synchronous cleanup.
Validation on Unity 6000.5 Windows Editor: two native ROM reloads and three starts, a full T2 Play run and runtime .vpe replacement, edit-mode recompilation with scene/domain reload disabled, recompilation during live simulation, and ordinary Play to Stop. Native shutdown completed before unloading; all 11 managed event subscriptions were detached on ordinary exit. Opus 5.5 reviewed the fix and the correction to edit-mode teardown before commit.