summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKoichi Sasada <[email protected]>2023-12-18 21:40:43 +0900
committerKoichi Sasada <[email protected]>2023-12-19 02:26:37 +0900
commit6c4b04de5cba36077f86b08d54c4c316f3df1d87 ()
tree6f3f774a980b0f5f19f40788c2abf51e5660a8c5
parentf35fec771047de15127c0e00d22b9eccd5487f51 (diff)
clear `sched->lock_onwer` at fork
`sched->lock_owner` can be non-NULL at fork because the timer thread can acquire the lock while forking. `lock_owner` information is for debugging, so we only need to clear it at fork. I hope this fixes the following assertion failure: ``` thread_pthread.c:354:thread_sched_lock_:sched->lock_owner == NULL ```
-rw-r--r--thread_pthread.c5
1 files changed, 5 insertions, 0 deletions
@@ -1129,6 +1129,11 @@ void
rb_thread_sched_init(struct rb_thread_sched *sched, bool atfork)
{
rb_native_mutex_initialize(&sched->lock_);
ccan_list_head_init(&sched->readyq);
sched->readyq_cnt = 0;