General

Profile

jhawthorn (John Hawthorn)

  • Login: jhawthorn
  • Registered on: 12/22/2016
  • Last sign in: 10/08/2025

Issues

open closed Total
Assigned issues 24 57 81
Reported issues 3 22 25

Projects

Project Roles Registered on
Ruby Committer 11/25/2021

Activity

Today

01:21 AM Ruby Revision 45c01686 (git): Use explicit memory orders in concurrent_set
The atomic load/store operations here should mostly be using
release/acquire semantics. This may lead to better performance than what
we had under the default seq_cst.
On x86 this may make the atomic store of hash faster, as it can avoi...
jhawthorn (John Hawthorn)
12:13 AM Ruby Revision 9e4a7569 (git): Use BUILTIN_TYPE in gc_mark_check_t_none
jhawthorn (John Hawthorn)

10/10/2025

06:09 PM Ruby Revision 0a6cd03b (git): Add ASSERT_vm_locking_with_barrier
Previously we just had a comment stating that the code required a
barrier. Turns out it's not too difficult to properly assert that.
Co-authored-by: Luke Gruber <luke.gru@gmail.com>
jhawthorn (John Hawthorn)
05:18 PM Ruby Revision 17a5a5e2 (git): Take a full VM barrier in gc_rest
This isn't (yet?) safe to do because it concurrently modifies GC
structures and dfree functions are not necessarily safe to do without
stopping all Ractors.
If it was safe to do this we should also do it for
gc_enter_event_continue. I d...
jhawthorn (John Hawthorn)

10/05/2025

12:37 AM Ruby Revision 7a4c7eac (git): Add missing write barriers to ibf_load
Found by wbcheck jhawthorn (John Hawthorn)
12:37 AM Ruby Revision b202a1fe (git): Use write barriers when loading catch table
Found by wbcheck jhawthorn (John Hawthorn)

10/03/2025

05:30 PM Ruby Revision 8eaa9eb3 (git): Clear fields on heap RStruct before allocating
Now that we no longer explicitly set the first three elements, we need
to ensure the object is in a state safe for GC before we call
struct_heap_alloc, which may GC.
jhawthorn (John Hawthorn)

10/02/2025

08:24 PM Ruby Revision 3cd24070 (git): Don't call gc_mark from IO::buffer compact
Previously on our mark_and_move we were calling rb_gc_mark, which isn't
safe to call at compaction time.
Co-authored-by: Luke Gruber <luke.gru@gmail.com>
jhawthorn (John Hawthorn)
08:24 PM Ruby Revision 1f0da240 (git): ASAN poison parent_object after marking
Previously we were tracking down a bug where this was used after being
valid.
Co-authored-by: Luke Gruber <luke.gru@gmail.com>
jhawthorn (John Hawthorn)
06:06 PM Ruby Revision 272e5b7c (git): [DOC] Remove now inaccurate comment about blocking
Originally ractor_next_id used a VM_LOCK, but now it is an atomic and
won't block.
jhawthorn (John Hawthorn)

Also available in: Atom