Files
mruby-mruby/mrbgems/mruby-task/src
Yukihiro "Matz" Matsumoto 61f99385ba mruby-task: fix crash by setting vmexec flag during task execution
Fix task termination crash caused by fiber_terminate freeing task
context resources. When a task completes, the VM would call
fiber_terminate which frees cibase/stbase, then next resume attempt
crashes dereferencing NULL pointers.

Solution unifies task and fiber lifecycle management:
- Set vmexec flag before calling mrb_vm_exec to prevent fiber_terminate
  from being called during normal task completion
- Save proc/pc to local variables to avoid CI_PROC_SET macro corruption
- Add termination check in mrb_task_free to prevent double-free

Tasks now follow the same execution pattern as Fiber, leveraging
VM's built-in context management.

Co-authored-by: Claude <noreply@anthropic.com>
2025-10-09 10:58:23 +09:00
..