Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:129390 X-Original-To: internals@lists.php.net Delivered-To: internals@lists.php.net Received: from php-smtp4.php.net (php-smtp4.php.net [45.112.84.5]) by lists.php.net (Postfix) with ESMTPS id B6BF11A00BC for ; Sat, 22 Nov 2025 12:12:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=php.net; s=mail; t=1763813581; bh=XPHL3Ho1+vNtCYBje2SV2uGe+UjdU1FqFsLJU2xqD3g=; h=Date:From:To:Cc:In-Reply-To:References:Subject:From; b=lIiitU8CEOyZEgf3hCukUqGzSHWVURTAuQlQ3y+EB/A7vhmXCylUPKeagkd0ZhmhF PnRoJq6PaIE5+IqGaQrSlg2gmRRA2TtdffYhvmBJT9r2qU7yIAdx5Dx79rCgtgXsgD q3us1WwyKfSxxjeAg666gigMjOPBNtaPC46ibUpVO1C3yoya6uYi5BxSemDerjaRnt da9csuvybva/S30KKQ0OxRKt63OHUDbRvSI6E3GaX+wnzCeylQ49ij705F27wa4ewf Hl5jMt7vJ6sVCNfraAv7/l61mq44VjGiDDBO5zeh+guHGLSJ1CJtUT1xSaWJnVFkGW iPugAmyjsGHng== Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id A95F418005B for ; Sat, 22 Nov 2025 12:13:00 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on php-smtp4.php.net X-Spam-Level: X-Spam-Status: No, score=0.6 required=5.0 tests=BAYES_50,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,DMARC_MISSING, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE, SPF_PASS autolearn=no autolearn_force=no version=4.0.1 X-Spam-Virus: No X-Envelope-From: Received: from mout.kundenserver.de (mout.kundenserver.de [212.227.126.134]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (prime256v1) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Sat, 22 Nov 2025 12:13:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=thomasbley.de; s=s1-ionos; t=1763813573; x=1764418373; i=mails@thomasbley.de; bh=XPHL3Ho1+vNtCYBje2SV2uGe+UjdU1FqFsLJU2xqD3g=; h=X-UI-Sender-Class:Date:From:To:Cc:Message-ID:In-Reply-To: References:Subject:MIME-Version:Content-Type: Content-Transfer-Encoding:cc:content-transfer-encoding: content-type:date:from:message-id:mime-version:reply-to:subject: to; b=RZQ4kdLtn4mLBJ5dNgpuA6avBYHC2kvKCf6B1hhNa/QhLejyr5/VpQZUM5hVdKnk gmGL4jGCgqCotK1lHrR8Z1lWFQYwsh51dA3JzZaaUnkkin5EXiLKe9z/hSky07Xg6 zP9BU97wRwcR5939OYLEAlPJ1g6YI6ZupJ2I3DtGR4zGf3+Jw6xdyYIZVH7h+XE1J 8NGsV7HF+pc7CG5aUjd79sacFp3KU+e0tcNBjDLJ1Syfeg5l9M3gtyZl9gKZKJw6Y of12W5JbBQ7nQERNDGQsOmieMnDon8ZE+mlButtGmzTU3UfB8bTHLL4ttpxWYHiTV Cg4FAOL1hIAuSfcZqw== X-UI-Sender-Class: 55c96926-9e95-11ee-ae09-1f7a4046a0f6 Received: from open-xchange-core-mw-default-1.open-xchange-core-mw-hazelcast-headless.open-xchange.svc.cluster.local ([10.73.157.130]) by mrelayeu.kundenserver.de (mreue012 [172.19.35.3]) with ESMTPSA (Nemesis) id 1N14xe-1w7Pxv1EmQ-016b3F; Sat, 22 Nov 2025 13:12:53 +0100 Date: Sat, 22 Nov 2025 13:12:53 +0100 (CET) To: Edmond Dantes Cc: internals@lists.php.net Message-ID: <980296152.1071.1763813573083@email.ionos.de> In-Reply-To: References: <383528143.397454.1763760932585@email.ionos.de> <691963327.399484.1763796022993@email.ionos.de> <1402906904.784903.1763811759896@email.ionos.de> <2015208655.784984.1763811978476@email.ionos.de> Subject: Re: [PHP-DEV] [VOTE] True Async RFC 1.6 Precedence: list list-help: list-unsubscribe: list-post: List-Id: x-ms-reactions: disallow MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Priority: 3 Importance: Normal X-Mailer: Open-Xchange Mailer v8.38.93 X-Originating-Client: open-xchange-appsuite X-Provags-ID: V03:K1:0+9AbtH8ytc3wtKoFxMmE5ieWUuvL7Ccpo9qXcmX4kz0viCmxLz U1gcEoLDRiKX+xdL9m6TjJMXnx+8Mu8IeEhou92Cgy+OJMNxtz8ahgef8GQtH7pjBudxl+x TzZzx6UkgDNR01w7xqqM/WUL7Oogc74PuLWvjB3hIeK/X1mv/XzPe0gX8CGoOBMULsJ9etc OeF86EChXWus4g/0raxZw== UI-OutboundReport: notjunk:1;M01:P0:SLKYsLRUa5k=;bNAFyqmIj7ZOA+/kPLpL3cJ6IRh x72JYYtGmtL0cBL8DgFzgWOp4/hH/0ZqYPv9uxzUWK6KOh7o/JbEFWxjnWiTjsMCNdSPvMojC tTREeG4jVIeAK5tt47wVblo5rUZ+5OfXIrRCpv8T5gqQ0de2kOCr1FHcGtauigA3P+DIk5BM9 9CO6yeE7UcAho5cnVnHZ9q7GWIGCrPpiQS5hqBrZSqGQ6sGo1fMQlb9/ifG9MUuR5chkub1sa zc/n9UR2hoX6c3M5KrHNf+3hUcMXTYl1Rj/nhydEXX+b7GDR/rpqBo8zXFQ/y326a3f0j37So JZ7tU9LGGr7XBBxvWm4GgHQ/3QC/ZW0Wc6jkm5uTeNcmtZzw2hKL8erZCNs4oTCn2BJ+HE6ZA LMPfz6sbNRoc5T4AYmTvkI5uxpteUdeXjTQK5eNKcwNoORwzFwyNH7DUxMSjPxY1tFay/2AFW 4pc0C5/h+XN4jNeufM1GHCzctOu8gcfJCuGbx4ADMHry/pv7qMuvObilIHggdw5U5vd2RSoBJ CYwnLT+LIIWJZhJMmWJVZCWAYiOtk2cGNVYEhnM48cqtsbZSNmqBgjDcFy6XEsoQxY5b64Wlw CBld/GYUiBLLa53lBa3fGlfDILYE+dOPmkE1DAxJo9yi0z/By4k04z1BzWKA5Iz111iD9lJ1m jR5D9+ERY4+zFJlpbWlPbQWZoqGF5IiDfgZ6/7buBOlN5HeSB2fFaL+pGWp4mrPsK+k4oH6mv lf66uMIBjOnduHCptoLnME6QpgP/V7Ngg5w0ZTk6y5cQybIb2u5QpVfZsHpTybi5zpHm4/cLR apFZMjj0+4ExBurebXo9IJjrbzcf76cJwJOMOocM4G+xGvdCFcklzz4VU0bSzxkdCavKOUigI Jhqf8HVSKtDafbYIyfPuOePHYI0g/127doiQdZfX/BFrA5z1KQaCOyuaB51XaFNIipiIFTLrT aIOPzzejbL1wbnm9mi1Kbkg3ynN7TZUt+/+zjDoTgDaglMlPAmelzILLhoefeX48fbmK5vZbJ AGsijZ0AAd7FRB2aDvI4JY/tjb2x+Wf2+9mZLkmqHEIStV8HSiv71GWHnDHDWbppy+5Nmmlwn mib6Mkv0okBOLphqNFS5OTaZVWxyP1PU7sYAJpdJT9d8CYOdFezLBxZBDCDSenSRC6XFf+Jf1 TpC6y+GRw+n42v1WDLnSCgUxrh3JD5XJa9tzR2QpG4CsKtR9OrJdpom1skbhHuwMg3tFCwjPV 77FQR9ZZpMeEsVgE8vLN/nHanLBFD/B9FH2RicXEO6CqmryCaUGiZ4Cu2rOGzlfaZ3mt4CS31 c7Zl4e5I6JPGx5Ec8fslPT9+uxJ4NGPxm0SBlyOLYtvc1AZsMwSb0qhyoC6QBqFTBOBHioHik nyB+GczIFZioRtynQ9bFvnnLqZDSOlYcT3B33RJOnI5GG8IwBhW6NLv0QYtT0HvBngje/lDFd HpBIcZpOf7NkxR0ohNzYcGEE1iHe0FuKU8ZC7LVNfrkmMLtBF/iQjxDeRytItR9mkYVAK5hq7 NhiDtRWeYwq3Rv9YFe4ZhYTvfwXbv6TA7MXduzqw13ufVZ8hKv27LDfzkwx01fsrZvHm76w/1 9+mjM9NjBAV4hOL8R7QIwL0kZmdrHL3pF2lKLTWg7NuS9ApJuYJpZON1MbV7SQ126Y+0zOquh U+sMfVGq+G3gFQwp5RZ9wXlfDYUDgBDg4rwf4MYoldxL32inqill24pZFT/T9KKteTO8Hfs81 D3xDapWlT1NLe From: mails@thomasbley.de (Thomas Bley) > Edmond Dantes hat am 22.11.2025 13:01 CET geschrieb= en: >=20 > =20 > Hello >=20 > > function return types should not depend on the outside context (spawn, = hook, ini, etc.) because when the code gets more complex, it's very hard to= find the outside context. >=20 > What does =E2=80=9Coutside context=E2=80=9D mean? >=20 > I just want to understand the practical use of functions with Promise. > The code above makes sense only if there is awaitAll. >=20 > $promise1 =3D file_get_content_async("file1.txt"); > $promise2 =3D file_get_content_async("file2.txt"); > $promise3 =3D file_get_content_async("file3.txt"); >=20 > awaitAll($promise1, ....); >=20 > But you can achieve exactly the same effect without special functions. > The only difference is that the _async function inside might be > optimized in some way. > Or is there something else? >=20 > --- > Ed Hello, basically in $result =3D foo(spawn(bar(baz(file_get_contents())))); file_ge= t_contents() receives outside context from spawn() to turn into async mode.= Also foo(), bar(), baz() can be in different namespaces, different classes= , so by looking at the code calling file_get_contents(), it's not clear if = the result is sync or async. Another example: $foo =3D file_get_contents('foo.txt'); $result =3D foo($foo); should be equal to: $result =3D foo(file_get_contents('foo.txt')); but having: $foo =3D file_get_contents('foo.txt'); // sync $result =3D spawn($foo); // error because $foo is string would not be eqaul to: $result =3D spawn(file_get_contents('foo.txt')); // async Best Regards Thomas