-
Notifications
You must be signed in to change notification settings - Fork 194
Closed
Description
Found by @jeremyevans through:
- https://github.com/jeremyevans/etc/actions/runs/10012691202/job/27678723077
- jeremyevans/etc@7c2b434
- Release GVL around pw and gr function calls in Etc ruby/etc#40
So in this change, VALUE rb_mutex_synchronize(VALUE mutex, VALUE (*func)(VALUE arg), VALUE arg);
is used.
But that function is poorly typed, every VALUE
in there should be void*
instead, except for VALUE mutex
.
That is, both arg
and the return value of func
can be arbitrary things, not necessary Ruby values/handles.
We already pass arg
as-is, but we unwrap+wrap the return value, which I highly suspect is the cause of that error in CI.
So we should remove the unwrap+wrap for rb_mutex_synchronize
.