From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 23919 invoked by alias); 7 Jan 2014 16:03:04 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 23903 invoked by uid 89); 7 Jan 2014 16:03:03 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-3.0 required=5.0 tests=AWL,BAYES_00,RP_MATCHES_RCVD,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.2 X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 07 Jan 2014 16:03:03 +0000 Received: from int-mx12.intmail.prod.int.phx2.redhat.com (int-mx12.intmail.prod.int.phx2.redhat.com [10.5.11.25]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s07G31RW003118 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Tue, 7 Jan 2014 11:03:01 -0500 Received: from barimba (ovpn-113-85.phx2.redhat.com [10.3.113.85]) by int-mx12.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s07G2xN2002726 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO); Tue, 7 Jan 2014 11:03:00 -0500 From: Tom Tromey To: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Cc: gdb-patches@sourceware.org, guile-user@gnu.org Subject: Re: [PATCH v2 02/13] script language API for GDB: extension.[ch] References: <52a7f3e8.e7ed440a.1c58.020f@mx.google.com> <87vbyffcwu.fsf@fleche.redhat.com> <87txdklqk4.fsf@gnu.org> <87r48kkc9g.fsf@fleche.redhat.com> <87eh4krl81.fsf@gnu.org> Date: Tue, 07 Jan 2014 16:03:00 -0000 In-Reply-To: <87eh4krl81.fsf@gnu.org> ("Ludovic \=\?utf-8\?Q\?Court\=C3\=A8s\=22'\?\= \=\?utf-8\?Q\?s\?\= message of "Tue, 07 Jan 2014 14:10:38 +0100") Message-ID: <87iotvixu4.fsf@fleche.redhat.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-SW-Source: 2014-01/txt/msg00143.txt.bz2 >>>>> "Ludovic" =3D=3D Ludovic Court=C3=A8s writes: Ludovic> So do I get it right that it=E2=80=99s GDB that does signal(SIGINT= , ...), and Ludovic> its handler just calls PyOS_InterruptOccurred (or so) if Python co= de Ludovic> happens to be running? Yeah. >> One approach for multiple extension languages might be to notice when >> switching languages and move the bit. However I didn't see any way to >> do this in the Guile API. In Python it can be accomplished with >> PyErr_SetInterrupt and PyOS_InterruptOccurred. Ludovic> Would it work, upon SIGINT, to do something like: Ludovic> (system-async-mark (lambda () Ludovic> (throw 'system-error ... EINTR))) Ludovic> That would eventually raise an exception in Scheme code. According to the Guile docs one must use scm_sigaction, since scm_system_async_mark is not async-signal-safe. However scm_sigaction takes over the signal. I don't think that will work ok. Also this idea doesn't address how it would interact with the gdb core or with Python. Tom