[Ecls-list] ecl with old libc: deadlock in gc due to signal handling
Anton Vodonosov
avodonosov at yandex.ru
Thu Jan 20 12:41:55 UTC 2011
20.01.2011, 14:55, "Juan Jose Garcia-Ripoll" <juanjose.garciaripoll at googlemail.com>:
> On Thu, Jan 20, 2011 at 12:31 PM, Anton Vodonosov <avodonosov at yandex.ru> wrote:
>> It's a good idea, thanks. I will only need to think about race conditions, like if GC starts after the sigwait returns, but before we called
>> GC_register_my_thread. Or this code doesn't allocate any heap memory and should not be protected by GC?
>
> Code in the library is itself protected, so one should not worry about it.
You mean the libc code?
I worry about this code:
if (status == 0) {
if (interrupt_signal == signo)
goto RETURN;
signal_code = call_handler(lisp_signal_handler, signo,
NULL, NULL);
if (!Null(signal_code)) {
mp_process_run_function(3, @'si::handle-signal',
@'si::handle-signal',
signal_code);
}
}
Can we run it in parallel with GC?
More information about the ecl-devel
mailing list