From owner-freebsd-questions@freebsd.org Mon Oct 2 07:10:04 2017 Return-Path: Delivered-To: freebsd-questions@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 27EECE38470 for ; Mon, 2 Oct 2017 07:10:04 +0000 (UTC) (envelope-from ftp51246-2575596@sh4-5.1blu.de) Received: from sh4-5.1blu.de (sh4-5.1blu.de [178.254.11.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D8C1182128 for ; Mon, 2 Oct 2017 07:10:03 +0000 (UTC) (envelope-from ftp51246-2575596@sh4-5.1blu.de) Received: from ftp51246-2575596 by sh4-5.1blu.de with local (Exim 4.86_2) (envelope-from ) id 1dyurZ-0000aa-2H for freebsd-questions@freebsd.org; Mon, 02 Oct 2017 09:10:01 +0200 Date: Mon, 2 Oct 2017 09:10:01 +0200 From: Matthias Apitz To: freebsd-questions@freebsd.org Subject: Re: no dead-lock when signal handler calls localtime_r() on FreeBSD, but on Linux Message-ID: <20171002071000.GA1373@sh4-5.1blu.de> Reply-To: Matthias Apitz Mail-Followup-To: Matthias Apitz , freebsd-questions@freebsd.org References: <20171002063425.GA21552@sh4-5.1blu.de> <102e950a-f3f2-bff1-1025-d5e757ee793b@gmx.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <102e950a-f3f2-bff1-1025-d5e757ee793b@gmx.com> X-Operating-System: FreeBSD 12.0-CURRENT r314251 (amd64) X-message-flag: Mails containing HTML will not be read! Please send only plain text. User-Agent: Mutt/1.5.24 (2015-08-30) X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Oct 2017 07:10:04 -0000 El día Monday, October 02, 2017 a las 09:57:51AM +0300, Yuri Pankov escribió: > On Mon, 2 Oct 2017 08:34:26 +0200, Matthias Apitz wrote: > > > > > >Hello, > > > >I'm on the way clarifying a deadlock-issue we face on Linux when localtime_r() > >is called in a signal-handler funtion. If you compile the code attached > >below with gcc on Linux, the code gives what one deserves: a dead-lock > >when Ctrl-C is pressed. > > Why? I don't see anything explicitly stating that localtime_r() is > async-signal-UNsafe. Because, as I said, it is not in the list of The following functions are either reentrant or not interruptible by signals and are async-signal safe. Therefore applications may invoke them, without restriction, from signal-catching functions or from a child process after calling fork(2) in a multi-threaded process: in the man page sigactio(2). matthias -- Matthias Apitz | /"\ ASCII Ribbon Campaign: E-mail: guru@unixarea.de | \ / - No HTML/RTF in E-mail WWW: http://www.unixarea.de/ | X - No proprietary attachments phone: +49-176-38902045 | / \ - Respect for open standards | en.wikipedia.org/wiki/ASCII_Ribbon_Campaign