unofficial mirror of bug-guile@gnu.org 
 help / color / mirror / Atom feed
From: nobody@savannah.gnu.org
Subject: [Bug #2110] bug in threading implementation using guile-1.6.1
Date: Fri, 10 Jan 2003 08:38:41 -0500	[thread overview]
Message-ID: <E18WzMv-0000Sd-00@subversions.gnu.org> (raw)


=================== BUG #2110: LATEST MODIFICATIONS ==================
http://savannah.gnu.org/bugs/?func=detailbug&bug_id=2110&group_id=39

Changes by: Stan Pinte <stan.pinte@wanadoo.be>
Date: 2003-Jan-10 13:38 (GMT)

------------------ Additional Follow-up Comments ----------------------------
This only seems to happen when I make two calls two (gtk-main), indirectly.

-> one via the (gtk-ensure-handler) call
-> one afterwards, via the (gtk-main) call.



=================== BUG #2110: FULL BUG SNAPSHOT ===================


Submitted by: stan_pinte              Project: Guile                        
Submitted on: 2003-Jan-02 13:12
Category:  None                       Severity:  5 - Major                  
Bug Group:  None                      Resolution:  None                     
Assigned to:  None                    Status:  Open                         

Summary:  bug in threading implementation using guile-1.6.1

Original Submission:  hello,

I am using multiple threads within a guile-gtk application.

a call to (gtk-threads-ensure-handler) ensures that a first thread gets started, and
allows the rest of my program to execute. At the end of that program, I call (gtk-main), to 
wait in the Gtk event thread.

If I run my program without starting a second thread, it is ok, but as soon as I invoke 
(gtk-threads-ensure-handler), my CPU is used at 100%

NOTES:

1: I configured guile-1.6.1 using the "--with-threads" flag.
2: if I strace my process, I see this:

ioctl(7, FIONREAD, [0])                 = 0
select(32, [6 7], [], [], {0, 0})       = 1 (in [6], left {0, 0})
gettimeofday({1041338430, 454970}, NULL) = 0
gettimeofday({1041338430, 455055}, NULL) = 0
ioctl(7, FIONREAD, [0])                 = 0
select(32, [6 7], [], [], {0, 0})       = 1 (in [6], left {0, 0})
gettimeofday({1041338430, 455767}, NULL) = 0
gettimeofday({1041338430, 455852}, NULL) = 0
ioctl(7, FIONREAD, [0])                 = 0
select(32, [6 7], [], [], {0, 0})       = 1 (in [6], left {0, 0})
gettimeofday({1041338430, 456429}, NULL) = 0
gettimeofday({1041338430, 456511}, NULL) = 0
ioctl(7, FIONREAD, [0])                 = 0
select(32, [6 7], [], [], {0, 0})       = 1 (in [6], left {0, 0})
gettimeofday({1041338430, 457084}, NULL) = 0
gettimeofday({1041338430, 457166}, NULL) = 0
ioctl(7, FIONREAD, [0])                 = 0
select(32, [6 7], [], [], {0, 0})       = 1 (in [6], left {0, 0})
gettimeofday({1041338430, 459008}, NULL) = 0
gettimeofday({1041338430, 459097}, NULL) = 0
ioctl(7, FIONREAD, [0])                 = 0
select(32, [6 7], [], [], {0, 0})       = 1 (in [6], left {0, 0})
gettimeofday({1041338430, 459688}, NULL) = 0
gettimeofday({1041338430, 459771}, NULL) = 0
ioctl(7, FIONREAD, [0])                 = 0
select(32, [6 7], [], [], {0, 0})       = 1 (in [6], left {0, 0})

and so on....

--> I suspect a bug in the implementation of 

coop_wait_for_runnable_thread () in libguile/isselect.c

if (QFIRST (coop_global_sleepq)->timeoutp)
    gettimeofday (&now, NULL);
  
  return coop_wait_for_runnable_thread_now (&now);

...

thanks a lot,

Stan


Follow-up Comments
*******************

-------------------------------------------------------
Date: 2003-Jan-10 13:38             By: stan_pinte
This only seems to happen when I make two calls two (gtk-main), indirectly.

-> one via the (gtk-ensure-handler) call
-> one afterwards, via the (gtk-main) call.


CC list is empty


No files currently attached


For detailed info, follow this link:
http://savannah.gnu.org/bugs/?func=detailbug&bug_id=2110&group_id=39


_______________________________________________
Bug-guile mailing list
Bug-guile@gnu.org
http://mail.gnu.org/mailman/listinfo/bug-guile


             reply	other threads:[~2003-01-10 13:38 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-01-10 13:38 nobody [this message]
2003-01-10 14:13 ` [Bug #2110] bug in threading implementation using guile-1.6.1 Mikael Djurfeldt
2003-01-10 14:23   ` Stan Pinte
  -- strict thread matches above, loose matches on Subject: below --
2008-07-09  7:04 [bug " anonymous
2008-08-25  8:32 ` Ludovic Courtès
2009-07-20 21:38   ` Ludovic Courtès
2009-08-17 12:38     ` Ludovic Courtès
2003-01-02 13:12 [Bug " nobody

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=E18WzMv-0000Sd-00@subversions.gnu.org \
    --to=nobody@savannah.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).