diff options
| author | Jean Boussier <jean.boussier@gmail.com> | 2026-03-24 12:25:24 +0100 |
|---|---|---|
| committer | Jean Boussier <jean.boussier@gmail.com> | 2026-04-01 11:43:55 +0100 |
| commit | 9a2ffd8e5448e0c2ac4ae58d0ef02afc195f2cb8 (patch) | |
| tree | c953869e88792caf1a133efedb375a8cad187e42 /template | |
| parent | 3f1acedb62a0dbb2509e05ea314f6cd3383247b6 (diff) | |
Fix sending backtraces across ractors
[Bug #21818]
Currently exceptions can be sent across ractors,
but because of a limitation in the TypedData API,
the exception backtrace is duped as an empty backtrace.
The problem is that backtraces are embedded objects,
hence the classic `rb_class_alloc(klass)` API is insufficient
because we need to know the size of the Backtrace object we're
duping to instantiate the copy.
This is worked around by changing Ractors to call `#clone` on objects
rather than use `rb_obj_clone`, and to implement `Thread::Backtrace#clone`
to properly clone the variable size object.
Diffstat (limited to 'template')
| -rw-r--r-- | template/id.c.tmpl | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/template/id.c.tmpl b/template/id.c.tmpl index 5aa8e47ce7..d40f143065 100644 --- a/template/id.c.tmpl +++ b/template/id.c.tmpl @@ -1,5 +1,5 @@ %# -*- c -*- -/* DO NOT EDIT THIS FILE DIRECTLY */ +/* DO NOT EDIT THIS FILE DIRECTLY: source is at template/id.c.tmpl */ /********************************************************************** id.c - |
