Hello, Boris Zbarsky <[EMAIL PROTECTED]> writes:
> Sure. The wrong thing is that profile-signal-handler is not called, > so never resets the timer, so no more SIGPROFs. Unless I'm misreading > the code. Oh, right. > I can't check the values in the structs it's passed, unfortunately (no > symbols here for guile or the libc). Maybe with `strace(1)' or similar? >> Another (remote) possibility could be that the Scheme-level handler is >> not called, even though the C handler in libguile is called, since >> Scheme-level signal handlers are actually asyncs (info "(guile) >> Asyncs"). You can try to force the execution of asyncs by adding a call >> like "(select '() '() '() 0)" (technically, it invokes `SCM_TICK', which >> runs asyncs). > > Where would I add that? In some Scheme code that is run regularly. BTW, is Gnucash multithreaded? > For that matter, what's the C handler in > libguile? I should be able to breakpoint on that and see whether it's > called, hopefully... It's `take_signal ()' (scmsigs.c), at least in 1.8.x. Hope this helps, Ludo'.