From unknown Sat Jun 21 03:06:15 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#77408 <77408@debbugs.gnu.org> To: bug#77408 <77408@debbugs.gnu.org> Subject: Status: [PATCH] srfi-18: Unlock mutex even when condition variable timeout is hit Reply-To: bug#77408 <77408@debbugs.gnu.org> Date: Sat, 21 Jun 2025 10:06:15 +0000 retitle 77408 [PATCH] srfi-18: Unlock mutex even when condition variable ti= meout is hit reassign 77408 guile submitter 77408 nathan severity 77408 normal tag 77408 patch thanks From debbugs-submit-bounces@debbugs.gnu.org Mon Mar 31 12:03:25 2025 Received: (at submit) by debbugs.gnu.org; 31 Mar 2025 16:03:25 +0000 Received: from localhost ([127.0.0.1]:42539 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tzHbf-0002Jw-M9 for submit@debbugs.gnu.org; Mon, 31 Mar 2025 12:03:25 -0400 Received: from lists.gnu.org ([2001:470:142::17]:36696) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1tzHbc-0002Gr-K4 for submit@debbugs.gnu.org; Mon, 31 Mar 2025 12:03:21 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tzHbH-0006wg-Kt for bug-guile@gnu.org; Mon, 31 Mar 2025 12:03:01 -0400 Received: from mail.nborghese.com ([2001:19f0:5:48e0:5400:4ff:fe08:e8a8]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tzHbD-0006Uu-OK for bug-guile@gnu.org; Mon, 31 Mar 2025 12:02:57 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; s=062122; bh=VPa5PlH+9Z4qY MzMgk+wFI3oDoOWJ0PFr5EEjQ/OMag=; h=subject:from:to:date; d=nborghese.com; b=pOlNdUxuWEVzs6oESeV0VmqfZZeuYzYOIqNC7wptQBhyvMKg5l2 TywVyyHaYDUGDGhpwAxA98xrlhsHeyCgviJHTUoR+4258H+ZsNWI6v35T/mcOKasvgt+fj fJSCqwRyrDpaTHRF9YLKua8x8aZTPeeKMHaFMCg+sF8sxb35Gk= Received: by nborghese.com (OpenSMTPD) with ESMTPSA id c51ef672 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO) for ; Mon, 31 Mar 2025 16:02:41 +0000 (UTC) Content-Type: multipart/mixed; boundary="------------u9qWnReMFY7Wf4FoqZ8m0r6a" Message-ID: <05cce09d-162a-4660-8e96-aaaffffb7a69@nborghese.com> Date: Mon, 31 Mar 2025 16:02:52 +0000 MIME-Version: 1.0 User-Agent: Icedove Daily Content-Language: en-US To: bug-guile@gnu.org From: nathan Subject: [PATCH] srfi-18: Unlock mutex even when condition variable timeout is hit Received-SPF: pass client-ip=2001:19f0:5:48e0:5400:4ff:fe08:e8a8; envelope-from=nathan_mail@nborghese.com; helo=mail.nborghese.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 0.9 (/) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.1 (/) This is a multi-part message in MIME format. --------------u9qWnReMFY7Wf4FoqZ8m0r6a Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Unlock mutex even when condition variable timeout is hit Add tests Relevant srfi-18 documentation: https://srfi.schemers.org/srfi-18/srfi-18.html NOTE: mutex-unlock! is related to the "wait" operation on condition variables available in other thread systems. The main difference is that "wait" automatically locks mutex just after the thread is unblocked. This operation is not performed by mutex-unlock! and so must be done by an explicit call to mutex-lock!. --------------u9qWnReMFY7Wf4FoqZ8m0r6a Content-Type: text/x-patch; charset=UTF-8; name="0001-srfi-18-Unlock-mutex-even-when-condition-variable-ti.patch" Content-Disposition: attachment; filename*0="0001-srfi-18-Unlock-mutex-even-when-condition-variable-ti.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAxNWRiZjNiN2VlMjdiM2E0NzA2NTI4YTU1YTY4YmQ5NTY5NDVmZGRiIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBuYXRoYW4gPG5hdGhhbl9tYWlsQG5ib3JnaGVzZS5j b20+CkRhdGU6IE1vbiwgMzEgTWFyIDIwMjUgMTE6NTU6NTMgLTA0MDAKU3ViamVjdDogW1BB VENIXSBzcmZpLTE4OiBVbmxvY2sgbXV0ZXggZXZlbiB3aGVuIGNvbmRpdGlvbiB2YXJpYWJs ZSB0aW1lb3V0IGlzCiBoaXQKCiogbW9kdWxlL3NyZmkvc3JmaS0xOC5zY20gKG11dGV4LXVu bG9jayEpOiBVbmxvY2sgbXV0ZXggZXZlbiB3aGVuCmNvbmRpdGlvbiB2YXJpYWJsZSB0aW1l b3V0IGlzIGhpdAoqIHRlc3Qtc3VpdGUvdGVzdHMvc3JmaS0xOC50ZXN0OiBBZGQgY29kZSB0 byB0ZXN0IGlmIG11dGV4IGlzIHVubG9ja2VkCmFmdGVyIHdhaXRpbmcgb24gY29uZGl0aW9u IHZhcmlhYmxlCi0tLQogbW9kdWxlL3NyZmkvc3JmaS0xOC5zY20gICAgICAgfCAxMiArKysr KysrLS0tLS0KIHRlc3Qtc3VpdGUvdGVzdHMvc3JmaS0xOC50ZXN0IHwgMjEgKysrKysrKysr KysrKysrKysrKystCiAyIGZpbGVzIGNoYW5nZWQsIDI3IGluc2VydGlvbnMoKyksIDYgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbW9kdWxlL3NyZmkvc3JmaS0xOC5zY20gYi9tb2R1 bGUvc3JmaS9zcmZpLTE4LnNjbQppbmRleCA3OWFlZGI4ZDEuLjFjN2NiMTE2MCAxMDA2NDQK LS0tIGEvbW9kdWxlL3NyZmkvc3JmaS0xOC5zY20KKysrIGIvbW9kdWxlL3NyZmkvc3JmaS0x OC5zY20KQEAgLTMxNSwxMSArMzE1LDEzIEBAIG9iamVjdCAoYWJzb2x1dGUgcG9pbnQgaW4g dGltZSksIG9yICNmLiIKICAgICAgICAgKHRocmVhZHM6d2FpdC1jb25kaXRpb24tdmFyaWFi bGUgKGNvbmRpdGlvbi12YXJpYWJsZS1wcmltIGNvbmQtdmFyKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAobXV0ZXgtcHJpbSBtdXRleCkpCiAgICAgICAg ICh0aHJlYWRzOnVubG9jay1tdXRleCAobXV0ZXgtcHJpbSBtdXRleCkpKQotICAgICAgICgo dGhyZWFkczp3YWl0LWNvbmRpdGlvbi12YXJpYWJsZSAoY29uZGl0aW9uLXZhcmlhYmxlLXBy aW0gY29uZC12YXIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChtdXRleC1wcmltIG11dGV4KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB0aW1lb3V0KQotICAgICAgICAodGhyZWFkczp1bmxvY2stbXV0ZXggKG11dGV4 LXByaW0gbXV0ZXgpKSkKLSAgICAgICAoZWxzZSAjZikpKSkpCisgICAgICAgKGVsc2UKKyAg ICAgICAgKGxldCAoKHJlc3VsdCAodGhyZWFkczp3YWl0LWNvbmRpdGlvbi12YXJpYWJsZQor ICAgICAgICAgICAgICAgICAgICAgICAoY29uZGl0aW9uLXZhcmlhYmxlLXByaW0gY29uZC12 YXIpCisgICAgICAgICAgICAgICAgICAgICAgIChtdXRleC1wcmltIG11dGV4KQorICAgICAg ICAgICAgICAgICAgICAgICB0aW1lb3V0KSkpCisgICAgICAgICAgKHRocmVhZHM6dW5sb2Nr LW11dGV4IChtdXRleC1wcmltIG11dGV4KSkKKyAgICAgICAgICByZXN1bHQpKSkpKSkKIAog OzsgQ09ORElUSU9OIFZBUklBQkxFUwogOzsgVGhlc2UgZnVuY3Rpb25zIGFyZSBhbGwgcGFz cy10aHJ1cyB0byB0aGUgZXhpc3RpbmcgR3VpbGUgaW1wbGVtZW50YXRpb25zLgpkaWZmIC0t Z2l0IGEvdGVzdC1zdWl0ZS90ZXN0cy9zcmZpLTE4LnRlc3QgYi90ZXN0LXN1aXRlL3Rlc3Rz L3NyZmktMTgudGVzdAppbmRleCBmNDY1NDNkOTguLjAxZTJhYWQ5NiAxMDA2NDQKLS0tIGEv dGVzdC1zdWl0ZS90ZXN0cy9zcmZpLTE4LnRlc3QKKysrIGIvdGVzdC1zdWl0ZS90ZXN0cy9z cmZpLTE4LnRlc3QKQEAgLTM0OCw3ICszNDgsMjYgQEAKICAgICAgIChsZXQqICgobSAobWFr ZS1tdXRleCAnbXV0ZXgtdW5sb2NrLTQpKQogICAgICAgICAgICAgIChjIChtYWtlLWNvbmRp dGlvbi12YXJpYWJsZSAnbXV0ZXgtdW5sb2NrLTQpKSkKICAgICAgICAgKG11dGV4LWxvY2sh IG0pCi0gICAgICAgIChub3QgKG11dGV4LXVubG9jayEgbSBjIDEpKSkpKQorICAgICAgICAo bm90IChtdXRleC11bmxvY2shIG0gYyAxKSkpKQorCisgICAgKHBhc3MtaWYgIm11dGV4IGlz IHN0aWxsIHVubG9ja2VkIGFmdGVyIGNvbmRpdGlvbiB2YXJpYWJsZSBpcyBzaWduYWxlZCIK KyAgICAgIChsZXQqICgobSAobWFrZS1tdXRleCAnY29uZGl0aW9uLXZhcmlhYmxlLXNpZ25h bC0xKSkKKyAgICAgICAgICAgICAoYyAobWFrZS1jb25kaXRpb24tdmFyaWFibGUgJ2NvbmRp dGlvbi12YXJpYWJsZS1zaWduYWwtMSkpCisgICAgICAgICAgICAgKHQgKG1ha2UtdGhyZWFk IChsYW1iZGEgKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobXV0ZXgtbG9j ayEgbSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uZGl0aW9uLXZhcmlh YmxlLXNpZ25hbCEgYykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobXV0ZXgt dW5sb2NrISBtKSkpKSkKKyAgICAgICAgKG11dGV4LWxvY2shIG0pCisgICAgICAgICh0aHJl YWQtc3RhcnQhIHQpCisgICAgICAgIChtdXRleC11bmxvY2shIG0gYykKKyAgICAgICAgKGVx dj8gKG11dGV4LXN0YXRlIG0pICdub3QtYWJhbmRvbmVkKSkpCisKKyAgICAocGFzcy1pZiAi bXV0ZXggaXMgc3RpbGwgdW5sb2NrZWQgYWZ0ZXIgY29uZGl0aW9uIHZhcmlhYmxlIHRpbWVv dXQiCisgICAgICAobGV0KiAoKG0gKG1ha2UtbXV0ZXggJ2NvbmRpdGlvbi12YXJpYWJsZS1z aWduYWwtMSkpCisgICAgICAgICAgICAgKGMgKG1ha2UtY29uZGl0aW9uLXZhcmlhYmxlICdj b25kaXRpb24tdmFyaWFibGUtc2lnbmFsLTEpKSkKKyAgICAgICAgKG11dGV4LWxvY2shIG0p CisgICAgICAgIChtdXRleC11bmxvY2shIG0gYyAxKQorICAgICAgICAoZXF2PyAobXV0ZXgt c3RhdGUgbSkgJ25vdC1hYmFuZG9uZWQpKSkpCiAKICAgKHdpdGgtdGVzdC1wcmVmaXggImNv bmRpdGlvbi12YXJpYWJsZT8iCiAKLS0gCjIuNDkuMAoK --------------u9qWnReMFY7Wf4FoqZ8m0r6a--