Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:110192 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 97498 invoked from network); 16 May 2020 20:18:16 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 16 May 2020 20:18:16 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 6F2A81804E0 for ; Sat, 16 May 2020 11:56:00 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on php-smtp4.php.net X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS, SPF_PASS autolearn=no autolearn_force=no version=3.4.2 X-Spam-ASN: AS8075 40.64.0.0/10 X-Spam-Virus: No X-Envelope-From: Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12olkn2021.outbound.protection.outlook.com [40.92.21.21]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Sat, 16 May 2020 11:55:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Vg39gathx3It+7bt9IQ/qxS/GiiRJ2nNMMMH0a1Kb42Iu4J+MK7kLJRII1ns8lN2dK1OgzVAb2frjY48dbqIgcO6aO1Xca5E6YZHOXSjHhiHoe/F2QjjLjN9pAeMPALjdc/B8FCp3aVl5vIjSa218vGdzSIvpOEOSDkdw5EH7vzhGbEj7nE84/0YiqlcPq7wYj0Tsjro7NR0u71uT1CKbAvYH+VGFEFVCK9BzJqgB5b0ked7Zvq5rmFQlBahsPLtTXnKyiuSUr3AvVdiADJpMySheRVbU47OIBa04kurlEMsJbj8bE/Azgga5+bKBNq/c3zn/SYabzL5GEmubBPH7A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=DFXjJqFnW+OHdHEhT/eczqUBQAvETWrENqB4skyqEdA=; b=aQJ7qcmWQgKDvm6T4faUtcBnq4V1++TtMD0tKef+oDCr9+gPXLn8LjqBwJ4OuPDTYVxDwxR6i2vOVYNPRVezaPvRHyAkLjCrJXb5tMbfoIrLBFlxEMV+KsIqOhuiXy2Zj6gblXkXmS28eL5Uqt6J93iQUug8NdOlBJ+nLkhk/1POiVd7atrgZdASwhpBr0U+HGTUrB5IpdCYCVpe2x1wxMw5t383w+NLj1GOkjWffTR6tEet7GQMQJGGC7/gzrQciyMMTG4vbqghUXeJDNYAs6x/kL0JRPKPSD9t5FnTDF41RuHyqQ/iNTIOgFC6xZ7u54GNzX2vOmpXGSBQoG/cLg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hotmail.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=DFXjJqFnW+OHdHEhT/eczqUBQAvETWrENqB4skyqEdA=; b=E6+fvJ213JiHWJYsHU7F44i2zMLJAOfkfrbkafH/VhJrjRU1KvTcsyYQSI0Da0LCyhDbF8Y/1NRfJK3M4lHXNpVy/ydLrRowsXm0rlF86L5kvfmRIVbf9IFjrJI1sMAGwLgTQy4I+Kw6Nh18WJYaUbYjECoY5jjGwM6so+vyRs67RpkKl1VGk+fbr/C+eJYftjV5mLCwo2an2uMBbkuqiVlsjmGIv8V+QrQ1vNqbW5yYmle3CfgOMbosBcNyyim41FYYHV7xH1+DhYQXjVwsrToAnpJ+f4Qmf+H+Ts3u5PtdITZDuxTHsm+Xg58bjAIm7pLCAN1Li0Cm0P8S0BYY7g== Received: from BN8NAM12FT036.eop-nam12.prod.protection.outlook.com (2a01:111:e400:fc66::45) by BN8NAM12HT050.eop-nam12.prod.protection.outlook.com (2a01:111:e400:fc66::386) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3021.11; Sat, 16 May 2020 18:55:58 +0000 Received: from DM6PR07MB6618.namprd07.prod.outlook.com (2a01:111:e400:fc66::4f) by BN8NAM12FT036.mail.protection.outlook.com (2a01:111:e400:fc66::224) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3021.11 via Frontend Transport; Sat, 16 May 2020 18:55:58 +0000 Received: from DM6PR07MB6618.namprd07.prod.outlook.com ([fe80::3054:f599:829e:7dd1]) by DM6PR07MB6618.namprd07.prod.outlook.com ([fe80::3054:f599:829e:7dd1%6]) with mapi id 15.20.3000.022; Sat, 16 May 2020 18:55:58 +0000 To: Derick Rethans , David Rodrigues CC: PHP Internals Thread-Topic: [PHP-DEV] Graceful timeout Thread-Index: AQHWK6lOtQyl85iVmUmnJPKlqQbZfairBJuAgAAIpMY= Date: Sat, 16 May 2020 18:55:58 +0000 Message-ID: References: , In-Reply-To: Accept-Language: en-CA, en-US Content-Language: en-CA X-MS-Has-Attach: X-MS-TNEF-Correlator: x-incomingtopheadermarker: OriginalChecksum:00614E448440ED6267957BC8DEF82467E4928E1A3F7C174644D01F8F50B46223;UpperCasedChecksum:4456BFDE53AA8841F19432B42EC3865C9867160E4074EC03F0251F1753D8F548;SizeAsReceived:7213;Count:46 x-ms-exchange-messagesentrepresentingtype: 1 x-tmn: [mwBrXsncn2nKJII0S0KZpCl9OArzh1ZcSULwi5uNQJE5xN6GRiq+tBqkPbsdv6MM] x-ms-publictraffictype: Email x-incomingheadercount: 46 x-eopattributedmessage: 0 x-ms-office365-filtering-correlation-id: e63050ba-36f1-4c46-c124-08d7f9cac52a x-ms-traffictypediagnostic: BN8NAM12HT050: x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: J5vN4wSP9S/p+aBpOPt/VRS/ryCZFGaIdeh6ok8rt8bWwytevpzk/iZ8TAo/62dddgwb6Sp+B64lgRpVR8R2U0GATcG9dyiJwdByhC59Bgd14AZQJ9t8AqyWZ6ov0560XHpOazyIaEDTZ8kp0h9nab04oO2Fgh1+VpkF/qAbnkuNte4x3kAFSXrXJsk4Q7lYDMUxTfAKfsrd/04Fe6hiwMh6A9IEqNsc18hbZiOi607SULu5v3vVRmHQGAf6MfOx x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:0;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR07MB6618.namprd07.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:;DIR:OUT;SFP:1901; x-ms-exchange-antispam-messagedata: yiBmC8WXEsPTvB7FuXQy9WQTur7paMoSKovf/VWvZRAsc5sEBS2Y5Nz/B8YEjnrcbbtHzpszv5nOON5cX5duyQtZ+eFHgbMvdLFmIccYTqWcTTDTeX6n4+pnIBMKx+m/mB6tJHGYOhS7D6nNFnfBW8XWebCEg32jVjgpLOLIflkUQshSkkEPiLxPypinHZSdFPMD8EDBMLfesuINgkYEDg== x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: hotmail.com X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-Network-Message-Id: e63050ba-36f1-4c46-c124-08d7f9cac52a X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-originalarrivaltime: 16 May 2020 18:55:58.2198 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Internet X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN8NAM12HT050 Subject: Re: [PHP-DEV] Graceful timeout From: tysonandre775@hotmail.com (tyson andre) Hi David,=0A= =0A= > You can probably implement this already with PHP's tick functionality =0A= (https://www.php.net/manual/en/function.register-tick-function.php), as=0A= > long as the code in the anonymous function does PHP statements/function = =0A= > calls.=0A= >=0A= > If your problem is waiting for an external resource to be available =0A= > (database call, http call), then instead you should be able to use =0A= > functionality of these services to handle your timeouts.=0A= =0A= If pcntl is available for your OS (not available on Windows), you can also = use pcntl_async_signals() to allow receiving signals at any time, pcntl_ala= rm() to send a signal at a given number of seconds from then, and throw a c= ustom exception from pcntl_signal() for SIGALRM.=0A= =0A= ticks() is limited - Every file would need to declare ticks=3D1 as of php 7= .0, or you might get delayed in the files that didn't.=0A= =0A= Supporting a cross-platform form of pcntl_alarm() might be a better abstrac= tion,=0A= but I don't have a strong use case for either of those.=0A= When implementing it, you'd need to ensure it didn't interfere with php's i= nternal time limit implementations or signal handlers in an undesirable way= (not something I'm deeply familiar with).=0A= That would also need to enable the checks that pcntl_async_signals(true) do= es. =0A= =0A= https://www.php.net/manual/en/function.pcntl-alarm.php=0A= https://www.php.net/manual/en/function.pcntl-async-signals.php=0A= https://www.php.net/manual/en/function.pcntl-signal.php=0A= =0A= - Tyson=