I am interesting in this. Would you provide us your abridged program
codes
that can reproduce the deadlock issue? Then we could have an insight
into
it.
site_ruby/drb/drb.rb:127
if (th->wait_for & WAIT_SELECT) warn_printf(“S”);
if (th->wait_for & WAIT_TIME) warn_printf(“T(%f)”, th->delay);
if (th->wait_for & WAIT_JOIN)
warn_printf(“J(0x%lx)”, th->join ? th->join->thread : 0);
if (th->wait_for & WAIT_PID) warn_printf(“P”);
if (!th->wait_for) warn_printf("-");
warn_printf(" %s - %s:%d\n",
th==main_thread ? “(main)” : “”,
th->node->nd_file, nd_line(th->node));
}
so, this seems like a bug. the thread in T state has made a call to
‘sleep’ -
if that thread is sleeping, and the other two are blocked on io/select,
why
wouldn’t it simply continue to sleep?
regards.
-a
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.