Backport #8969

backport r43092 (call gc_rest_sweep on GC.disable)

Added by Tomoyuki Chikanaga 7 months ago. Updated 6 months ago.

[ruby-dev:47736]
Status:Closed
Priority:Normal
Assignee:Tomoyuki Chikanaga

Description

r43092 は 2.0.0 でも必要でしょうか? 少なくとも無害でしょうか。
なんとなく GC を止めているところで LazySweep に絡んでいそうな問題の回避策になる気もするので、無害そうなら入れてみようかと思います。

Associated revisions

Revision 43220
Added by Tomoyuki Chikanaga 6 months ago

merge revision(s) 43092: [Backport #8969]

* gc.c (rb_gc_disable): do rest_sweep() before disable GC.
  This fix may solve a failure of
  TestTracepointObj#test_tracks_objspace_events
  [test/-ext-/tracepoint/test_tracepoint.rb:43].

History

#1 Updated by Koichi Sasada 7 months ago

2.1 で入れたのは、テストの都合だったりしますが、入れても害はありません(多分)。

#2 Updated by Tomoyuki Chikanaga 6 months ago

  • Status changed from Assigned to Closed
  • % Done changed from 0 to 100

This issue was solved with changeset r43220.
Tomoyuki, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.


merge revision(s) 43092: [Backport #8969]

* gc.c (rb_gc_disable): do rest_sweep() before disable GC.
  This fix may solve a failure of
  TestTracepointObj#test_tracks_objspace_events
  [test/-ext-/tracepoint/test_tracepoint.rb:43].

#3 Updated by Tomoyuki Chikanaga 6 months ago

ruby200 では gcrestsweep() -> restsweep() に名前を変更してバックポートしました。

Also available in: Atom PDF