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: Fri, 10 Jan 2003 08:38:41 -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 1042206109 5440 80.91.224.249 (10 Jan 2003 13:41:49 GMT) X-Complaints-To: usenet@main.gmane.org NNTP-Posting-Date: Fri, 10 Jan 2003 13:41:49 +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 18WzPt-0001PK-00 for ; Fri, 10 Jan 2003 14:41:45 +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 18WzQF-0003VD-0C for guile-bugs@m.gmane.org; Fri, 10 Jan 2003 08:42:07 -0500 Original-Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.10.13) id 18WzQ9-0003Po-00 for bug-guile@gnu.org; Fri, 10 Jan 2003 08:42:01 -0500 Original-Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.10.13) id 18WzPj-0002zX-00 for bug-guile@gnu.org; Fri, 10 Jan 2003 08:41:39 -0500 Original-Received: from subversions.gnu.org ([199.232.41.2]) by monty-python.gnu.org with esmtp (Exim 4.10.13) id 18WzMx-0001Nv-00 for bug-guile@gnu.org; Fri, 10 Jan 2003 08:38:43 -0500 Original-Received: from www-data by subversions.gnu.org with local (Exim 3.35 #1 (Debian)) id 18WzMv-0000Sd-00; Fri, 10 Jan 2003 08:38:41 -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:620 X-Report-Spam: http://spam.gmane.org/gmane.lisp.guile.bugs:620 =================== BUG #2110: LATEST MODIFICATIONS ================== http://savannah.gnu.org/bugs/?func=detailbug&bug_id=2110&group_id=39 Changes by: Stan Pinte 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