From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 110592 invoked by alias); 20 Oct 2017 10:32:50 -0000 Mailing-List: contact libc-help-help@sourceware.org; run by ezmlm Precedence: bulk List-Subscribe: List-Post: List-Help: , Sender: libc-help-owner@sourceware.org Received: (qmail 110571 invoked by uid 89); 20 Oct 2017 10:32:49 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.2 spammy= X-HELO: EUR01-DB5-obe.outbound.protection.outlook.com Received: from mail-db5eur01on0061.outbound.protection.outlook.com (HELO EUR01-DB5-obe.outbound.protection.outlook.com) (104.47.2.61) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 20 Oct 2017 10:32:47 +0000 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Szabolcs.Nagy@arm.com; Received: from [10.2.206.69] (217.140.96.140) by VI1PR0802MB2496.eurprd08.prod.outlook.com (2603:10a6:800:b8::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.77.7; Fri, 20 Oct 2017 10:32:44 +0000 Message-ID: <59E9D0C2.4090900@arm.com> Date: Fri, 20 Oct 2017 10:32:00 -0000 From: Szabolcs Nagy User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.8.0 MIME-Version: 1.0 To: Yubin Ruan , libc-help@sourceware.org CC: nd@arm.com Subject: Re: determine whether code is running in a signal handler context References: In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: AM5PR0202CA0009.eurprd02.prod.outlook.com (2603:10a6:203:69::19) To VI1PR0802MB2496.eurprd08.prod.outlook.com (2603:10a6:800:b8::23) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a652a093-66b5-418e-2d3a-08d517a5e651 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(48565401081)(4534020)(4602075)(4627075)(201703031133081)(201702281549075)(2017052603199);SRVR:VI1PR0802MB2496; X-Microsoft-Exchange-Diagnostics: 1;VI1PR0802MB2496;3:h+0VY0Nqx1MQwDkwoZLteFUCkKtsPULXpDUtyOCyi/GXcpd8dG0zS2NPlrfXwut3+Mem4k8/xp6Zi8j2r8XmN8BPD++EVZx0TbNnAyKEanZoZqr4dhnOVvlK/BetIkrC9GdC11I32nGpkAAoLS/plfA1Kt99T/Y4YwiQH1hRbw1pj6UqdqXMEdr8XhB4YCu2ci/mc5eqsibICWec9uM1eLSO3PYQDIZHpfcpDoiL+N2k56pgvNg13WawG4Tqez9Z;25:/GGEr9L9fm0Ofw54LHvn6OHNaD2jjOpZdTv3qp+Y6gOXyAbUqd5PE7/RQ6LRfPmWhHN1YiiQMZ9ODARkPPC14FpfffCWq+MeaBptLWtdbC5Am0cXKprSEMjstQdOwHMQB6SyQuguyuFCBwplNPQ1v2qF9g43J+Cm7kPYNgWhLbS2DzUDvdZvTHBlml1RhzTRb9RR5QiFhAWPhQc34vo+JW8Ub/t3B/UhiDIjHeJxO+3XkVQ6dhijNIAIbqhFY0j+owff9CD56WPqWHFKbhMQHS8BGTaoAFYHJhW2NtR3fnoh0Ln8c58pOyZeqGzKz3P2ZmyhCnOOp8tcicWrSoPlbjun4ZFUz4pAVIG8WdCuTOA=;31:E3kXxx/OtNN4IHY5uByrt+d/zInxaweWg+T/pyQu+y7bhT7RDYq6XNq8IBSlUF4y0oTvnAMDWY3U0BF1B5VCfKx8cN0Zc6p+plcDB+7+TPrpkuFdLUFUnSgMECA4ykkK4INvOZHOZxxv4GU0kDsyGOiInCeyO87xT9BbwGhxnROuMkxOC6VNQ3uqre5nxDxneyFj4g8CKDkbEvZ+gxHgBYnX4aTC/lKNp8MOmsuMWUo= X-MS-TrafficTypeDiagnostic: VI1PR0802MB2496: NoDisclaimer: True X-Microsoft-Exchange-Diagnostics: 1;VI1PR0802MB2496;20:UYc7UVnrpoxe73auRavrBYW4C/sQEzyRAQQrlnh6IfDluktfg8EqnuGjA4Wgmeek0hx94dgSXKiTPaoYgNpXnJK7nB6XUo3IRGrmpA+eg51UhYtsdeQbUswY4DVH3eVbX/8kSstm6H9QBhV3cUenRgB+dD5/MzwMz/RrRBUvoK0=;4:sZ0cDubPdJ0IDeBnaTzIjrAC8WVg7VIQzdl8jpjDg0o36ERvB6JAy6fhULrdU36EbwS6w/vuzyb9uTr+ydOXnYckWLHpDvI4Qw9OHxYLWDg0hFJHhWtDtwToF/ms1FhvOZNCvTGkSRUu3wPwN239V0KFwP39eulxl6m0t0JlFOKM6pFIoybUOc1KsnsJJbHCnjdlRahoxEXySxbvvAeTX0mBrEDBzvSwzyVC4lwBi1Uj3j9e1LyjzS7Sqd4kqmU8 X-Exchange-Antispam-Report-Test: UriScan:; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(8121501046)(5005006)(3002001)(3231020)(100000703101)(100105400095)(93006095)(93001095)(10201501046)(6055026)(6041248)(20161123560025)(20161123562025)(20161123564025)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:VI1PR0802MB2496;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:VI1PR0802MB2496; X-Forefront-PRVS: 0466CA5A45 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6009001)(6049001)(346002)(376002)(39860400002)(189002)(199003)(24454002)(50466002)(65806001)(305945005)(3846002)(54356999)(7736002)(6666003)(97736004)(81156014)(65956001)(25786009)(36756003)(8936002)(59896002)(230700001)(68736007)(16526018)(23676002)(39060400002)(6246003)(8676002)(47776003)(83506002)(81166006)(4326008)(72206003)(478600001)(33656002)(66066001)(6116002)(65816999)(76176999)(80316001)(87266999)(58126008)(101416001)(105586002)(229853002)(5660300001)(2906002)(189998001)(106356001)(77096006)(53936002)(316002)(53546010)(6486002)(2950100002)(86362001)(16576012)(50986999)(64126003);DIR:OUT;SFP:1101;SCL:1;SRVR:VI1PR0802MB2496;H:[10.2.206.69];FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; Received-SPF: None (protection.outlook.com: arm.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtWSTFQUjA4MDJNQjI0OTY7MjM6Q3JQSE8wUE5scXNNVXJmWGJoV1JBVGsy?= =?utf-8?B?SVc2TVNkWXlQZXEvbjJ2cTg0WFo1eG9jaTFSUUFhRDRoeUZDdEFBSUFySDU2?= =?utf-8?B?akFuZ2RIQlliMEtJLzlSbXJURjU5UHdKWHNpM24xNlJCZ280MTNhWGp1dEZp?= =?utf-8?B?Q0pJbnNsdTRqVEtteXIyVGYzTkdWVVMzUlBINXdNYjlBWm1WMml6VHhXK04r?= =?utf-8?B?YVB6bk52dGdTZjE5dERlRXFOVUdnN2NLUUF0Z1gwV2g0anJCRnZpZno1TGZK?= =?utf-8?B?bVlxQnpQdFRNVllSV2JjaVpnR1JXWW8veDF3NDBNOEVpUXBIcHJpZjZML3Fi?= =?utf-8?B?cXpsbnEvb0pLVWRvaDFZWEpxUXlMbVFUSFNtaG9aOHYvU1p5TEk3Ny8xRlMz?= =?utf-8?B?ZjhWVXlkSXJkbTZ1THBJQ0ZuTjNnejloTkZQUzZ3ekR3MGxXOUt6WjlQbGZT?= =?utf-8?B?M1l1L01XTFd6Q203SHZ5a1JVNFVMTUg1V2J3T3I3T1VzK3NwZkNnTzFqb3FZ?= =?utf-8?B?NGhOdmxpUzA3RXNXcGtxUm16bG5mbUZDU3NUeVlVRmtMSXdsYjZLZXFZK1VL?= =?utf-8?B?L1kzU1QySmNZODRLKzdVczk1WC95dWdWT2lDTEJNOUhnb1FlNHBrMkpNeEEv?= =?utf-8?B?WWEyRXZrM1FLNHJnS1kwNVN5QnpTd2QwRHU5K3EzT2xTNFlJZG1nS2JkQmJB?= =?utf-8?B?U2VsMnFGVkxQMVgxQXFTaDFIMGxEdjRDNkp5SFkwNDRYV2lOOWFoVWJHdDlO?= =?utf-8?B?dlpVWHhoZkVmWkdGOTR1V3U1T24xd251Z050TGVrU3JQK3ZPNy9WcEhYak1v?= =?utf-8?B?OGUyenF5UDJoYm15c1RKbVAzOHJWbTE1VHJBVFFMdHBlZE1zWGJWeDlVSmdX?= =?utf-8?B?bko5SkVyeHdBd1dLV2pKS0pXN09Uc3RYdUhWeXdmeHU2NUcyTnlQamFFbE9z?= =?utf-8?B?Z3h3WEtKbjgvMFNmL1lmOXIyOUYvdlBKNyt1ZngwdkR3bVl2dzBzWURoLzl2?= =?utf-8?B?VlFzamRBL2lxLzRLSnBDakhPaW1WaXF1dDRJbU5oWHZza0gvV041UzVqajM5?= =?utf-8?B?cjd1ejJLV004U1JyNk5Fa2dUMzkvamV5TCsyV29MM256RUJ0dWxVc3FkUnM1?= =?utf-8?B?TWpBNTlLeEhLb3IwQXQ0VjFZQk5TU3cxK3R2ZzhSbXVTaS9UU3k4am5mckNH?= =?utf-8?B?dHZ5R3VyV1FsRUs0d0NPSDJvYUNjQnJGUlVNTjhvZVEreWtHNVo5dkpickVm?= =?utf-8?B?SStmc0ZGVkVhUVI0NDh2N2RYam9uSzR6TkgvdFZLUEdEOGpGdDlsUmFYbm9l?= =?utf-8?B?STZYWHdGWVFJSGx1a3Exb2tUVnlieGtiT01vN1l1bDdEZnc1YTlDZXBEbHR0?= =?utf-8?B?NzUyVkpYRnZaSnk2bUluMG1oSkNEeElNbXpMWVJxaTZIdUtIMlFmMURraGhR?= =?utf-8?B?YVllT0duVGczMldsYmZzc0J5N0Z4ekZuN29HTmVSdXQ2dHAxRnVUZ3BxdlJh?= =?utf-8?B?RzV6S1A4UXRaOEx6WndCWnRtVTN3T05TYmhtSzhaTHh0Wm1OTTRwR2FzTG5v?= =?utf-8?B?aVdVbm51VjlTUk9JNDBVdkpxNVpYSklMWWUxdEo2RUV2SWdIZkw3WTMzaXpM?= =?utf-8?B?R1VrTEN5RDRuUWxzWEVYaEYwVFVmOEdreGdVNnJlZUhBZzdWRWNpOTJxMXpq?= =?utf-8?B?TkIzUTVQdXZpSHZYblZ6Tk9WaUUwdDcrMHQzRHdTYmMyRTZIU2w0ZHUwQzZ4?= =?utf-8?B?a28wNVRnYkhxKzJRRVVETzNicDhjWHA3QkdPTUV4U1ZreTdkN21vbmxlZmhx?= =?utf-8?B?b1RVR1RweFdIcFJscjVlZ1FSTjAxMW5EQTd2NWFTZWlLMVNLd1l0ek5kTGZY?= =?utf-8?Q?VDWIQHhbhyFup3DxDAUjC4u/9vaIkZTq29?= X-Microsoft-Exchange-Diagnostics: 1;VI1PR0802MB2496;6:VzcjyJH/AiRxDRGPkY04YEuR/T3D67g8ot9jpeKulsayoysoGTNqRlyswGCGY94Ogcxlyt6CEVeAMW+nosKIBSWcFMX2ijZLGy+OqJlm7rntMvnlpmZx9zzTrbg8Jn1n79UpHHp6SyeMatnqwVdVFKP3ceo/VNZHXLmxNFWe1Hf139ZDTw2V2E6/yL6qNF5MUPyxA6JbLPMu8GfYeEl8WpGqV2UPt9Y9LSXj3SmxdXDiYHAcTSZYvgaOSzbIJAHCdC7GXEYUl515WXsnmukyZq9/PipzApnbWui/U81hPaAlEQAD99AFgeY+Ip62IZ3IXKWY/e0aPCNxJO66SNEF0A==;5:WzwNrHMPOlNiZV5qdi+aoF51KZ7o8Dqe9lwQI41j0qxeIhbMEvxfHSLF/Zenmc7T9LaSyV3vNyiHVqIPp1tA8JMDyYPls4ld8PgesC/F/etRj4iV7ruo22Rzmoz9VUClRdtU6lCI8Hxb/AjdF6p4bg==;24:ieAiFdl4pEqwmzJZzTNHCxIm+gYvHN041FYVtEh3e/jqPG322rc4sSmNVQYXMbvDJofKjy9GtHl6lt1cLN+hX31Q3nPAtK0WhlI/onLbPpc=;7:M8M/61oBhL066AHiANKtzGaX/gycjIZxRSi9uGpk4fDambSPJVhQBfJOtRSsqzy+rur/67DcUvIfltYbh1+oxXKb8dBU78sErybzEfqaGY0OZqFlbmn4YWsRq+8AgutrQ+uLAWcsVh4fykddYOMqIOvNCaJ1aMVahcFB0AD2RqXyr6++H5LXrbtqNWBQkuTdHww4BvDZ9BxdqslJwHoijSd8tMQ7PHtwWf0x6TocRtM= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Oct 2017 10:32:44.0946 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0802MB2496 X-IsSubscribed: yes X-SW-Source: 2017-10/txt/msg00029.txt.bz2 On 18/10/17 15:18, Yubin Ruan wrote: > Hi, > > I am writing to see if this is any util functions in libc that can > help to determine it is currently running in a signal. > > I wrote some library and provide a function which will be used in many > client code. However this function is not async-signal safe (it calls > malloc(3)) so when it is called, I want to detect whether it is > currently running in a signal handler. If it is, I can avoid calling > those not-async-signal-safe functions which might cause deadlock. > note that in posix as-safety is symmetric between the interrupted code and interrupt handler: if any of the interrupt and interrupt handler is as-safe then the behaviour is well defined. so calling non-as-safe code in an asynchronous signal handler is perfectly fine if the interrupted code is as-safe. there are synchronous signals too, i.e. raise(sig), and then the signal handler runs in well-defined state (one can use signal masks to make sure a signal handler only runs in such state) so using "in_signal_handler_context()" is not a valid way to verify the as-safety interface contract. > that is, I want a `in_signal_handler_context()' utility that can be > used as this: > > int mylibfunc( void ) { > if( in_signal_handler_context() ) { return(-1) } > // rest of function goes here > return( 0 ); > } > > > Yubin >