From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: nobody@savannah.gnu.org Newsgroups: gmane.lisp.guile.bugs Subject: [Bug #2110] bug in threading implementation using guile-1.6.1 Date: Thu, 02 Jan 2003 08:12:36 -0500 Sender: bug-guile-bounces+guile-bugs=m.gmane.org@gnu.org Message-ID: NNTP-Posting-Host: main.gmane.org X-Trace: main.gmane.org 1041513496 30635 80.91.224.249 (2 Jan 2003 13:18:16 GMT) X-Complaints-To: usenet@main.gmane.org NNTP-Posting-Date: Thu, 2 Jan 2003 13:18:16 +0000 (UTC) Return-path: Original-Received: from monty-python.gnu.org ([199.232.76.173]) by main.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 18U5Ej-0007xv-00 for ; Thu, 02 Jan 2003 14:18:14 +0100 Original-Received: from localhost ([127.0.0.1] helo=monty-python.gnu.org) by monty-python.gnu.org with esmtp (Exim 4.10.13) id 18U5Ev-0007IP-03 for guile-bugs@m.gmane.org; Thu, 02 Jan 2003 08:18:25 -0500 Original-Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.10.13) id 18U5BS-0006NO-00 for bug-guile@gnu.org; Thu, 02 Jan 2003 08:14:50 -0500 Original-Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.10.13) id 18U5AR-0005i7-00 for bug-guile@gnu.org; Thu, 02 Jan 2003 08:13:49 -0500 Original-Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.10.13) id 18U59J-0005IT-00 for bug-guile@gnu.org; Thu, 02 Jan 2003 08:12:37 -0500 Original-Received: from www-data by subversions.gnu.org with local (Exim 3.35 #1 (Debian)) id 18U59I-0001qL-00; Thu, 02 Jan 2003 08:12:36 -0500 Original-To: stan.pinte@wanadoo.be,bug-guile@gnu.org X-BeenThere: bug-guile@gnu.org X-Mailman-Version: 2.1b5 Precedence: list List-Id: Bug reports for GUILE, GNU's Ubiquitous Extension Language List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , Errors-To: bug-guile-bounces+guile-bugs=m.gmane.org@gnu.org Xref: main.gmane.org gmane.lisp.guile.bugs:610 X-Report-Spam: http://spam.gmane.org/gmane.lisp.guile.bugs:610 =================== BUG #2110: FULL BUG SNAPSHOT =================== http://savannah.gnu.org/bugs/?func=detailbug&bug_id=2110&group_id=39 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 No Followups Have Been Posted 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