caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Matt Gushee <matt@gushee.net>
To: caml-list@inria.fr
Subject: Re: [Caml-list] LablGTK app maxes out CPU
Date: Thu, 06 Jul 2006 17:51:05 -0600	[thread overview]
Message-ID: <44ADA1E9.7070106@gushee.net> (raw)
In-Reply-To: <20060706165121.GA4165@strontium.pps.jussieu.fr>

Jerome Vouillon wrote:

> You should try to run your program with the strace program, which
> traces system calls.  This will tell you why your program runs
> continuously rather than waiting for I/Os.

Okay, I've done the strace. I found something that appears to be 
significant, but I don't really understand it. After the GUI is 
displayed, there are a number of GTK library calls, and then some 
searches for various resources--locale files, fonts, icons--and then this:

poll([{fd=3, events=POLLIN}], 1, 0)     = 0
write(3, "\1\30\r\0\3\0\340\0D\0\0\0\0\0\0\0\251\0\244\1\0\0\1\0"..., 
2132) = 2132
ioctl(3, FIONREAD, [1184])              = 0
read(3, "\34\317N\0\3\0\340\0\31\1\0\0\376\331]E\0\330]Ex\202\37"..., 
1184) = 1184
poll([{fd=3, events=POLLIN}], 1, 0)     = 0
poll([{fd=3, events=POLLIN}], 1, 0)     = 0
poll([{fd=3, events=POLLIN}], 1, 0)     = 0
poll([{fd=3, events=POLLIN}], 1, 0)     = 0
poll([{fd=3, events=POLLIN}], 1, 0)     = 0
poll([{fd=3, events=POLLIN}], 1, 0)     = 0
poll([{fd=3, events=POLLIN}], 1, 0)     = 0
poll([{fd=3, events=POLLIN}], 1, 0)     = 0
poll([{fd=3, events=POLLIN}], 1, 0)     = 0
ioctl(3, FIONREAD, [0])                 = 0
poll([{fd=3, events=POLLIN}], 1, 0)     = 0
ioctl(3, FIONREAD, [0])                 = 0
poll([{fd=3, events=POLLIN}], 1, 0)     = 0
write(3, "5\30\4\0&\0\340\0\36\0\340\0\245\0\20\0\230\4\5\0\'\0\340"..., 
13780) = 13780
ioctl(3, FIONREAD, [0])                 = 0
poll([{fd=3, events=POLLIN}], 1, 0)     = 0
ioctl(3, FIONREAD, [0])                 = 0
poll([{fd=3, events=POLLIN}, {fd=7, events=POLLIN, revents=POLLHUP}], 2, 
-1) = 1

The last two lines are then repeated around 18000 times (identically 
each time, as far as I can see), until the 'quit' command is received. 
This takes place over a span of perhaps 30 seconds of real time. So 
pretty clearly this is the CPU-eating behavior, but I still can't see 
what is triggering it. By the way, FD #7 is my FIFO.

Well, based on the above, I tried adding a second watch function:

   let hup_watcher _ = Util.sleep 0.25; true in
   (* ... unrelated code omitted ... *)
   ignore (GMain.Io.add_watch ~cond:[`HUP] ~callback:hup_watcher chan)

Finally, this produces a change in behavior--but not quite what I need. 
CPU usage is under control, but now the GUI fails to display completely: 
the main window appears, with the outine of the TreeView widget it is 
supposed to have, but the contents are never displayed.

-- 
Matt Gushee
: Bantam - lightweight file manager : matt.gushee.net/software/bantam/ :
: RASCL's A Simple Configuration Language :     matt.gushee.net/rascl/ :


  parent reply	other threads:[~2006-07-06 23:50 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-07-04 18:30 Matt Gushee
2006-07-04 18:59 ` [Caml-list] " Matt Gushee
2006-07-04 19:12 ` Eric Cooper
2006-07-04 20:00   ` Matt Gushee
2006-07-04 20:21     ` Eric Cooper
2006-07-05 23:24       ` Matt Gushee
     [not found]         ` <Pine.LNX.4.64.0607060354120.6166@home.oyster.ru>
2006-07-06  0:27           ` Matt Gushee
2006-07-06  2:46         ` Matt Gushee
2006-07-06 16:51         ` Jerome Vouillon
2006-07-06 19:16           ` Matt Gushee
2006-07-06 23:51           ` Matt Gushee [this message]
2006-07-07  1:26             ` SOLVED -- " Matt Gushee
2006-07-07 13:40             ` Jerome Vouillon

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

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

  git send-email \
    --in-reply-to=44ADA1E9.7070106@gushee.net \
    --to=matt@gushee.net \
    --cc=caml-list@inria.fr \
    /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 NNTP newsgroup(s).