From: Koichi Sasada Date: 2018-05-02T11:21:39+09:00 Subject: [ruby-core:86814] Re: [Ruby trunk Feature#14723] [WIP] sleepy GC On 2018/05/01 17:46, Eric Wong wrote: > Individual patches available at: > https://80x24.org/spew/20180501080844.22751-2-e@80x24.org/raw > https://80x24.org/spew/20180501080844.22751-3-e@80x24.org/raw > https://80x24.org/spew/20180501080844.22751-4-e@80x24.org/raw > https://80x24.org/spew/20180501080844.22751-5-e@80x24.org/raw I'm not sure how to see all of diffs in one patch. Do you have? Anyway, small comments: > https://80x24.org/spew/20180501080844.22751-3-e@80x24.org/raw > + /* TODO: should this check is_incremental_marking() ? */ Any problem to check it? > +rb_gc_step(const rb_execution_context_t *ec) How about to add assertion that rb_gc_inprogress() returns true? --- a/internal.h +++ b/internal.h @@ -1290,6 +1290,10 @@ void rb_gc_writebarrier_remember(VALUE obj); void ruby_gc_set_params(int safe_level); void rb_copy_wb_protected_attribute(VALUE dest, VALUE obj); +struct rb_execution_context_struct; +int rb_gc_inprogress(const struct rb_execution_context_struct *); +int rb_gc_step(const struct rb_execution_context_struct *); + How about to add them into gc.h? https://80x24.org/spew/20180501080844.22751-4-e@80x24.org/raw I have no enough knowledge to review it. Nobu? https://80x24.org/spew/20180501080844.22751-5-e@80x24.org/raw > @@ -288,8 +294,17 @@ rb_mutex_lock(VALUE self) I can't understand why GC at acquiring (and restarting) timing is needed. Why? For other functions, I have a same question.happen. -- // SASADA Koichi at atdot dot net Unsubscribe: