guile-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Issues using statprof (no samples taken)


From: Ludovic Courtès
Subject: Re: Issues using statprof (no samples taken)
Date: Tue, 18 Nov 2008 11:30:41 +0100
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.3 (gnu/linux)

Hi,

Boris Zbarsky <address@hidden> writes:

> Ludovic Courtès wrote:

>> Maybe with `strace(1)' or similar?
>
> Unfortunately, that just shows the pointer to the struct, not the
> value in the struct itself....

Under GNU/Linux it does the right thing.  :-)

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

Are you sure that piece of code is ever called?  Is it called from an
"idle" handler or some such?

Another idea is that you could try modifying `statprof' so that it uses

  (setitimer ITIMER_REAL ...)

and

  (sigaction SIGALRM profile-signal-handler)

just to see if it makes a difference...

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

It may be that they use a single pthread (the "main" thread), and that
they handle events and timeouts via a GTK+ even loop.  Can you check
with GDB whether `pthread_create(3)' is ever called?

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

That's weird, but I don't have any other idea.  Now, I'm thinking about
how 1.8 works, so it might be that there are subtle differences with
1.6.

Thanks,
Ludo'.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]