unofficial mirror of guile-user@gnu.org 
 help / color / mirror / Atom feed
From: Boris Zbarsky <bzbarsky@MIT.EDU>
To: guile-user@gnu.org
Subject: Re: Issues using statprof  (no samples taken)
Date: Mon, 17 Nov 2008 16:52:22 -0500	[thread overview]
Message-ID: <4921E796.6000408@mit.edu> (raw)
In-Reply-To: <87abbybatj.fsf@gnu.org>

Ludovic Courtès wrote:
>> 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?

Unfortunately, that just shows the pointer to the struct, not the value 
in the struct itself....

>>> 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.

I tried adding that call to code that certainly runs repeatedly between 
statprof-start and statprof-stop (the code that handles updating the 
gnucash progress bar, in fact), but that doesn't seem to help.

> BTW, is Gnucash multithreaded?

I'm not sure.  It does update the UI during execution of guile code 
(progress indicator, and so forth), but that could also be accomplished 
if the guile interpreter makes some sort of periodic callbacks into the 
embedding.  They link to pthread, but don't seem to really use it for 
anything...

>> 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.

Yeah, that's called for SIGPROF in this case.  But the scheme handler is 
still not called, even with the (select '() '() '() 0) calls as above.

-Boris




  reply	other threads:[~2008-11-17 21:52 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-11-14 17:52 Issues using statprof (no samples taken) Boris Zbarsky
2008-11-14 23:31 ` Ludovic Courtès
2008-11-16 18:58   ` Boris Zbarsky
2008-11-17 15:10     ` Ludovic Courtès
2008-11-17 15:36       ` Boris Zbarsky
2008-11-17 16:02         ` Ludovic Courtès
2008-11-17 21:52           ` Boris Zbarsky [this message]
2008-11-18 10:30             ` Ludovic Courtès
2008-11-18 16:15               ` Boris Zbarsky
2008-11-18 22:02                 ` Ludovic Courtès
2008-11-21  2:51                   ` Boris Zbarsky

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/guile/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4921E796.6000408@mit.edu \
    --to=bzbarsky@mit.edu \
    --cc=guile-user@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).