From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.devel Subject: Delivering SIGIO when several threads are active? Date: Fri, 30 Dec 2016 12:25:46 +0200 Message-ID: <8360m1u311.fsf@gnu.org> Reply-To: Eli Zaretskii NNTP-Posting-Host: blaine.gmane.org X-Trace: blaine.gmane.org 1483093592 24556 195.159.176.226 (30 Dec 2016 10:26:32 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Fri, 30 Dec 2016 10:26:32 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri Dec 30 11:26:23 2016 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cMuOD-0005Eh-Gj for ged-emacs-devel@m.gmane.org; Fri, 30 Dec 2016 11:26:21 +0100 Original-Received: from localhost ([::1]:39242 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cMuOI-0003z5-Fq for ged-emacs-devel@m.gmane.org; Fri, 30 Dec 2016 05:26:26 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:53835) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cMuNm-0003yo-FT for emacs-devel@gnu.org; Fri, 30 Dec 2016 05:25:55 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cMuNh-0005Qu-In for emacs-devel@gnu.org; Fri, 30 Dec 2016 05:25:54 -0500 Original-Received: from fencepost.gnu.org ([2001:4830:134:3::e]:42707) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cMuNh-0005Qh-Ew for emacs-devel@gnu.org; Fri, 30 Dec 2016 05:25:49 -0500 Original-Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:2532 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1cMuNg-0001gC-Os for emacs-devel@gnu.org; Fri, 30 Dec 2016 05:25:49 -0500 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:210991 Archived-At: When SIGIO is received by some thread, we currently deliver it to the main thread, see deliver_input_available_signal and deliver_process_signal. Is that appropriate when more than one thread is active? The SIGIO handler just sets a global variable, so the handler itself is okay, I think, but is it okay to interrupt the main thread with SIGIO at some arbitrary point? E.g., the main thread could be in some Xlib or GTK call. The comments to deliver_process_signal say: POSIX says any thread can receive a signal that is associated with a process, process group, or asynchronous event. On GNU/Linux that is not true, but for other systems (FreeBSD at least) it is. What does happen on GNU/Linux? Is there a specific thread on GNU/Linux which gets signals associated with a process? And if so, does this affect what we should do with SIGIO in this case? Thanks.