From debbugs-submit-bounces@debbugs.gnu.org Fri Apr 04 12:12:15 2025 Received: (at submit) by debbugs.gnu.org; 4 Apr 2025 16:12:15 +0000 Received: from localhost ([127.0.0.1]:39665 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u0jeR-0008HO-7l for submit@debbugs.gnu.org; Fri, 04 Apr 2025 12:12:15 -0400 Received: from lists.gnu.org ([2001:470:142::17]:43010) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1u0ix5-00067z-5d for submit@debbugs.gnu.org; Fri, 04 Apr 2025 11:27:27 -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 1u0iwq-00066D-QB for bug-coreutils@gnu.org; Fri, 04 Apr 2025 11:27:13 -0400 Received: from mail-io1-f42.google.com ([209.85.166.42]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1u0iwp-0005If-6M for bug-coreutils@gnu.org; Fri, 04 Apr 2025 11:27:12 -0400 Received: by mail-io1-f42.google.com with SMTP id ca18e2360f4ac-85b4277d03fso81705639f.1 for ; Fri, 04 Apr 2025 08:27:10 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743780429; x=1744385229; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=kMIAk8BIWY1vriXK6/7sVpHCFuZdumn0ziOYcRZh5wg=; b=VdViJk6eKzdjmOQ8e2RixVPrUpjeP1stzk1v5k5kMBsebRqmSuchiR/ZSyuD08INEV nuDTHkcvq3by7YyDDyIwRmEMCjcC6QZLllOIXTpek7rjmtWwAlbOSigq3x6k0YcsYDgT VAl8B+/vf2Yoz6DjyaWrERe1m++SEkVFrvZtm1Tq7obrcoyNLy+jVEhXptLHJLssiYk0 hdTiK7tIZ21sm7PlLcdtKrjVZQCVNClCOC56/nf2rgUOQ7N3fYS9kAhjhLjWHl4qL2PX 3aTkeYwqVxripHaCQ3QWXHKvn+JDNGS2IQa1YRkA/LCG8K6l3PgLpHGhV5T0VbCYIUyU j8Eg== X-Gm-Message-State: AOJu0YzjncONw5Pbrpb20Wc+4IyqN5F7PvcFIKRQo6cnH6hDYa22O1I7 LLxKPtLJJlpccwHocFdemXx/fVS7RiaRKkEhmC8FCNbwUEPsWFiQBNwnrkD2pnWjD7HY0OXRkCg EW+4y3DL+q8I+z7/owBJptltl53luvBPPjEY= X-Gm-Gg: ASbGncve+HU+XwWkLd94E876hDbcisZQCiCwwPVLJwTK8SNZEWrKuv1tYWPsOTeVwLu 6GKSpEVZpxPEDh/e5sptbCD9s1Qy0oOz2pIMAOLxRzEO5uYUrdU8n15vqHm/5/Hm8GNf7V49Hbv fjpD4T1eGEt6OrjvGJEWVbf+Zgy43vAzqf34E= X-Google-Smtp-Source: AGHT+IGCEUgbNbaSUg+ijpRv0pQg+j6Ypa7RBrPPFwIyvyF/PLYYCodJs3relLklUxHYbQNZoOGaa3OipvrDASwceBg= X-Received: by 2002:a05:6e02:3701:b0:3ce:4b12:fa17 with SMTP id e9e14a558f8ab-3d6e3f7f812mr45735545ab.19.1743780428844; Fri, 04 Apr 2025 08:27:08 -0700 (PDT) MIME-Version: 1.0 From: Nicolas Boichat Date: Fri, 4 Apr 2025 17:26:56 +0200 X-Gm-Features: ATxdqUEoSIp3-7q8UzAhlw1H5z2kM9CSaO2hZ_WSwYIA0wWPqIMo8N1xHgLhNZ8 Message-ID: Subject: timeout treats very short durations as `0` To: bug-coreutils@gnu.org Content-Type: text/plain; charset="UTF-8" Received-SPF: pass client-ip=209.85.166.42; envelope-from=nicolas.boichat@gmail.com; helo=mail-io1-f42.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, FREEMAIL_FORGED_FROMDOMAIN=0.001, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: submit X-Mailman-Approved-At: Fri, 04 Apr 2025 12:12:13 -0400 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.0 (/) Hi, Version: timeout (GNU coreutils) 9.6, Archlinux, x86-64. While playing with different duration parameters to `timeout`, I noticed that extremely short durations, like `1e-3000`, are rounded down to `0`. The problem is that `0` has a special meaning (disabling the timeout), so I don't think this is desired. All of these commands exit immediately: ``` timeout 0.0001 cat timeout 1e-100 cat timeout 1e-300 cat timeout 1e-323 cat ``` But these never exits: ``` timeout 1e-324 cat timeout 1e-3000 cat ``` As if we had typed: ``` timeout 0 cat ``` I think there is some logic in `printf` to handle float parsing underflow, so maybe this can be reused in `timeout` as well. Thanks, From debbugs-submit-bounces@debbugs.gnu.org Fri Apr 04 15:28:07 2025 Received: (at 77535-done) by debbugs.gnu.org; 4 Apr 2025 19:28:07 +0000 Received: from localhost ([127.0.0.1]:40189 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u0mhy-0007y6-M1 for submit@debbugs.gnu.org; Fri, 04 Apr 2025 15:28:06 -0400 Received: from mail-wr1-x430.google.com ([2a00:1450:4864:20::430]:57760) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1u0mhv-0007xU-7i for 77535-done@debbugs.gnu.org; Fri, 04 Apr 2025 15:28:03 -0400 Received: by mail-wr1-x430.google.com with SMTP id ffacd0b85a97d-39ac9aea656so2138200f8f.3 for <77535-done@debbugs.gnu.org>; Fri, 04 Apr 2025 12:28:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1743794877; x=1744399677; darn=debbugs.gnu.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:to:subject:user-agent:mime-version:date:message-id :sender:from:to:cc:subject:date:message-id:reply-to; bh=TcrGkF78pGioQb/5ZONU/YBobvsqcKnubgUjMn6Rl34=; b=lAv880KTy3tJuCM8JdaEGqyQPDpdb0gTMkGB5pWTVK26xV39tfaq9muA5B1A99N92V wUNGUt5jvSiCWRqhDCIQgEZwNkCdT63UGPbip8f3C+c7dfqlqJRwoEIv9ord0sGup4Re 2AQ29xChaaHnhSC4SBkizN+vyYD+kO0fTMUx6zYj2tXaGSTQi+XbpXWmhdeiCu4AF0ES NQvkI0CmP3MS9O8n4etLpzWGExwK7KGC7PWsJbBo/EUXe5273ZHDNSpQwuC2jHLVOqos J0tlPAJJykTMyqd8XRmarP46gh3+Jm44yVQfd4/xIRWAWa2fTa6OxOuHj+nKrDTQf8mS sgVw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743794877; x=1744399677; h=content-transfer-encoding:in-reply-to:from:content-language :references:to:subject:user-agent:mime-version:date:message-id :sender:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=TcrGkF78pGioQb/5ZONU/YBobvsqcKnubgUjMn6Rl34=; b=hyJy8g+fNzXp1hoGPB9Qs+sFCNT3TUNSghkoqrmTM3hJkdrfBeLwsBBhprihFSKq9C KnuJcYJc8BSMfMVPFN76C8uAV32BZKCySNnvJTYVIDmqbAzhtfuvnlTt30biS9cIKMQd ByjrmfBf6v2EgPz8YJDkLVI90LVGgY4YLirJyK69mm6KAoOpzQ20reawPMHnRWgDRkv1 9XdVzqKdaRIv1S+lGvw/skbyJuugl/WV3aCQNse/Gi4PdZ40zTnUs3wjXUJNexQvqcUT w+kHVaX0XUQAuvXGEbmlFWE8yLnrwxf4mfDV7qaW34bedxGI5n3++arP9l3iC5itL4bh dP7Q== X-Forwarded-Encrypted: i=1; AJvYcCWqlBW6Bhspt/2OuuPNjOxJ1qZjSTEuzD8SMMjEQix9MVeEcaqo8XFKynxR7PYQGIc0tzem7KNr+Ni1@debbugs.gnu.org X-Gm-Message-State: AOJu0Yz/x/g1b0bQSKamq/eQGCuqv4FL8BKt+91dlNvhOh45IwQEz+w6 jOn5d8qmdjvZDoDsppO5H2RgsrIWWBlhsiFzKcuLWwGoyEtb8muDAELJ/9eA6rw= X-Gm-Gg: ASbGnctY8JO/Arlrg9LCQVgBjPcBoIfivX9HT7Ak+wFToo/wreMa/vdvUAkggIWJSlU FYoNlPFHCPgp15W/hA4V2dbdCZ6dCz8k9DkPMGLL6nPLc8qf85ivM9iy6LbQUyMBAdteDoIHJCg vHOoNkafZUgTnqg0YO5BdtvRQRKcRDjIOZmPti1/1BaDsgv+e8agSjTqyc45I2vPbGMp3VPHYHv gtg1qpmMw+9GX/j4BhOrjmZUF9WZguLyYvv0/Kgco3ir7TBT40zJd4sdgsFZ51a5xtxQq45pFJ7 LGL9pZhnw1XJMdg28Uo1PInJBARwThq3DWHWyR+b/lkqSK2pC1AV8nFf/PL60CpMybgcaBRPEI3 SjXm+EbZtH0ZZ5sA50yBwcRmaCL7TQCluMf8= X-Google-Smtp-Source: AGHT+IF0BG7n4Noss0G+N5uZzrF7tR7/gEOMd+7yf62lmD80EnH0RGf2Ib4/b+LTpGR9kf/K9J2xig== X-Received: by 2002:a5d:588f:0:b0:39c:1efd:ed8f with SMTP id ffacd0b85a97d-39d14662e4dmr3134696f8f.50.1743794876599; Fri, 04 Apr 2025 12:27:56 -0700 (PDT) Received: from [192.168.1.31] (86-44-211-146-dynamic.agg2.lod.rsl-rtd.eircom.net. [86.44.211.146]) by smtp.googlemail.com with ESMTPSA id ffacd0b85a97d-39c301b7933sm5239401f8f.54.2025.04.04.12.27.55 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 04 Apr 2025 12:27:56 -0700 (PDT) Message-ID: Date: Fri, 4 Apr 2025 20:27:55 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Beta Subject: Re: bug#77535: timeout treats very short durations as `0` To: Nicolas Boichat , 77535-done@debbugs.gnu.org References: Content-Language: en-US From: =?UTF-8?Q?P=C3=A1draig_Brady?= In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77535-done 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: -1.0 (-) On 04/04/2025 16:26, Nicolas Boichat wrote: > Hi, > > Version: timeout (GNU coreutils) 9.6, Archlinux, x86-64. > > While playing with different duration parameters to `timeout`, I > noticed that extremely short durations, like `1e-3000`, are rounded > down to `0`. The problem is that `0` has a special meaning (disabling > the timeout), so I don't think this is desired. > > All of these commands exit immediately: > ``` > timeout 0.0001 cat > timeout 1e-100 cat > timeout 1e-300 cat > timeout 1e-323 cat > ``` > > But these never exits: > ``` > timeout 1e-324 cat > timeout 1e-3000 cat > ``` > > As if we had typed: > ``` > timeout 0 cat > ``` > > I think there is some logic in `printf` to handle float parsing > underflow, so maybe this can be reused in `timeout` as well. The following should avoid this issue. Marking this as done. thanks! Pádraig diff --git a/src/timeout.c b/src/timeout.c index 578d71070..6756cd888 100644 --- a/src/timeout.c +++ b/src/timeout.c @@ -371,6 +371,10 @@ parse_duration (char const *str) usage (EXIT_CANCELED); } + /* Clamp underflow to 1ns, as 0 disables the timeout. */ + if (duration == 0 && errno == ERANGE) + duration = 1e-9; + return duration; } From debbugs-submit-bounces@debbugs.gnu.org Sat Apr 05 01:40:59 2025 Received: (at 77535-done) by debbugs.gnu.org; 5 Apr 2025 05:40:59 +0000 Received: from localhost ([127.0.0.1]:41173 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u0wH4-0002I8-IJ for submit@debbugs.gnu.org; Sat, 05 Apr 2025 01:40:59 -0400 Received: from mail-il1-f182.google.com ([209.85.166.182]:48523) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1u0n7C-0003uD-77 for 77535-done@debbugs.gnu.org; Fri, 04 Apr 2025 15:54:10 -0400 Received: by mail-il1-f182.google.com with SMTP id e9e14a558f8ab-3d5e43e4725so7130125ab.1 for <77535-done@debbugs.gnu.org>; Fri, 04 Apr 2025 12:54:10 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743796444; x=1744401244; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=NX4V2XwDxOHlg7ch2xMNiW9sEdY6gTd4uZmai9eBGec=; b=r24eEqPU/0dtcA0oMB8ACyhk9wih3FlXKoD54fh1qLQyPs8DoRCZz5F+6IuOTvL0uA AGQaGKOeiyhRIGTfwgKpy2zhXE1q1jWn6fz55hB0O+VhvgsvsSySZn3gPQ/LzDnZ/mAW 1BquNWwiDllUruAW3hnUklclDwLi3K4y9Q87MImSzgc9ngsU+rpBChPd8ZaHD+tgghGL rnCs7zvWvHWo+KVBYABYLkev72A4+5UDVFOFC6TNPwY0ZNdk6MPDosSdlQZL1HCF6UEq nW+zjDTV8na6wrMomUjPaesdnYLANX55lYukGlvKCmYfvtGI9R/X7ZH1OT68yRWQXgJz puUw== X-Gm-Message-State: AOJu0YxsE3ZTQSK1DOWfiOUsV8XWbAznb9itW4aKWJI3NwbUcLHFSxUL Moqr5xeHCv/ufgJk1paGCA2b0qeKYsQudzZExLmSOmsMOcg1D+uI35nzyOIvgmwEzYtEfljdyON nr+1iIbtZfKUP2VmpkKuymaLTkbi7+K+B X-Gm-Gg: ASbGncvJu6BU97FaMSujXn2J279y8a+S0UWw/EaT+2TX8MIVi4wYfIx6qPMjo27QY3O MvUIgSdSWFulQhMdW7q/m3lFPuaB7goOGob7z1spARVUVxwcoRxJIwpWhGzNR5tFoFVXFnSFgv6 9qRHfDIJJKdLM8HTW3WmBEPUcX X-Google-Smtp-Source: AGHT+IECWTaiFCD717PaTOJwtYkitPuzxldv6UkQ8kDrotVzw4xqBoSGqNTGBl9mThuVLYetT73hZTKufg6PBzjtfEA= X-Received: by 2002:a92:cd84:0:b0:3d4:414c:6073 with SMTP id e9e14a558f8ab-3d6ec53372dmr9186905ab.8.1743796444280; Fri, 04 Apr 2025 12:54:04 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Nicolas Boichat Date: Fri, 4 Apr 2025 21:53:53 +0200 X-Gm-Features: ATxdqUHeL-MTT9nqiXGnchwWhM6oCzl53jQeMlBqHI_hHLAFxHSkLJ2LbpCaO0s Message-ID: Subject: Re: bug#77535: timeout treats very short durations as `0` To: =?UTF-8?Q?P=C3=A1draig_Brady?= Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77535-done X-Mailman-Approved-At: Sat, 05 Apr 2025 01:40:57 -0400 Cc: 77535-done@debbugs.gnu.org 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: -1.0 (-) On Fri, 4 Apr 2025 at 21:27, P=C3=A1draig Brady wrote: > > On 04/04/2025 16:26, Nicolas Boichat wrote: > > Hi, > > > > Version: timeout (GNU coreutils) 9.6, Archlinux, x86-64. > > > > While playing with different duration parameters to `timeout`, I > > noticed that extremely short durations, like `1e-3000`, are rounded > > down to `0`. The problem is that `0` has a special meaning (disabling > > the timeout), so I don't think this is desired. > > > > All of these commands exit immediately: > > ``` > > timeout 0.0001 cat > > timeout 1e-100 cat > > timeout 1e-300 cat > > timeout 1e-323 cat > > ``` > > > > But these never exits: > > ``` > > timeout 1e-324 cat > > timeout 1e-3000 cat > > ``` > > > > As if we had typed: > > ``` > > timeout 0 cat > > ``` > > > > I think there is some logic in `printf` to handle float parsing > > underflow, so maybe this can be reused in `timeout` as well. > > The following should avoid this issue. > > Marking this as done. That was fast! Thanks! > > thanks! > P=C3=A1draig > > diff --git a/src/timeout.c b/src/timeout.c > index 578d71070..6756cd888 100644 > --- a/src/timeout.c > +++ b/src/timeout.c > @@ -371,6 +371,10 @@ parse_duration (char const *str) > usage (EXIT_CANCELED); > } > > + /* Clamp underflow to 1ns, as 0 disables the timeout. */ > + if (duration =3D=3D 0 && errno =3D=3D ERANGE) > + duration =3D 1e-9; > + > return duration; > } > From debbugs-submit-bounces@debbugs.gnu.org Sat Apr 05 04:04:00 2025 Received: (at 77535) by debbugs.gnu.org; 5 Apr 2025 08:04:00 +0000 Received: from localhost ([127.0.0.1]:41376 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u0yVT-0003Sl-Fn for submit@debbugs.gnu.org; Sat, 05 Apr 2025 04:04:00 -0400 Received: from mail.cs.ucla.edu ([131.179.128.66]:55240) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1u0yVQ-0003SX-HJ for 77535@debbugs.gnu.org; Sat, 05 Apr 2025 04:03:57 -0400 Received: from localhost (localhost [127.0.0.1]) by mail.cs.ucla.edu (Postfix) with ESMTP id E7F863C0149CA; Sat, 5 Apr 2025 01:03:49 -0700 (PDT) Received: from mail.cs.ucla.edu ([127.0.0.1]) by localhost (mail.cs.ucla.edu [127.0.0.1]) (amavis, port 10032) with ESMTP id fZIJKelzlj8T; Sat, 5 Apr 2025 01:03:49 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by mail.cs.ucla.edu (Postfix) with ESMTP id 5495C3C0149D0; Sat, 5 Apr 2025 01:03:49 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.10.3 mail.cs.ucla.edu 5495C3C0149D0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cs.ucla.edu; s=9D0B346E-2AEB-11ED-9476-E14B719DCE6C; t=1743840229; bh=E1zpVsIO71L7uSN1MolCua/E1wCB5bqu5QLUqXZll80=; h=Message-ID:Date:MIME-Version:To:From; b=Z31bYHN4x1GAG9vF/kOLTZn9tp4vNQfgsWJSNXec4sFeFDPDK/nb7uXN/sH4/BZ4z Kkw4o4FjrMS5xOq8As4XXa+9Od1FwVIklB0i7C/HFWAk1+AaXPxv2Sm+2Yfi9+haV8 ju+Qh7HLknvBoTtGhK3letjAX06h47h7YHr9dSugVBnDKwDit8d65rP45BAnPfkTac O4Zz29xnQwJJzJ6ako4X96cE0LwKTX2mPZy2Fhl0pggftneXKRBRzXNlKtShGY/g6l Y2JmH20ClGJzsBGxc8+cczLAvq3Sqd57ZSIh+JMDX0spTTMUtZq/epwWXe8kleE9uM minFmluT5S3tQ== X-Virus-Scanned: amavis at mail.cs.ucla.edu Received: from mail.cs.ucla.edu ([127.0.0.1]) by localhost (mail.cs.ucla.edu [127.0.0.1]) (amavis, port 10026) with ESMTP id b3zlIJdQ1HrN; Sat, 5 Apr 2025 01:03:49 -0700 (PDT) Received: from [192.168.254.12] (47-147-225-25.fdr01.snmn.ca.ip.frontiernet.net [47.147.225.25]) by mail.cs.ucla.edu (Postfix) with ESMTPSA id 3094E3C0149CA; Sat, 5 Apr 2025 01:03:49 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------H2q1gelg9asgz40i29t5buIH" Message-ID: <4ee5b797-d038-4392-8c43-d3321903f38e@cs.ucla.edu> Date: Sat, 5 Apr 2025 01:03:48 -0700 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: bug#77535: timeout treats very short durations as `0` To: 77535@debbugs.gnu.org References: Content-Language: en-US From: Paul Eggert Organization: UCLA Computer Science Department In-Reply-To: X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77535 Cc: nicolas@boichat.ch, P@draigBrady.com 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: -1.0 (-) This is a multi-part message in MIME format. --------------H2q1gelg9asgz40i29t5buIH Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable On 2025-04-04 12:27, P=C3=A1draig Brady wrote: > +=C2=A0 /* Clamp underflow to 1ns, as 0 disables the timeout.=C2=A0 */ > +=C2=A0 if (duration =3D=3D 0 && errno =3D=3D ERANGE) > +=C2=A0=C2=A0=C2=A0 duration =3D 1e-9; That isn't exactly right as the 1e-9 double-rounds to 2e-9 when we=20 compute the struct timespec. Also, even with the patch the code=20 mishandles 16777216.000000001 (2**24 + 10**-9) by treating it as if it=20 were just 16777216. These are tiny bugs, I know, but I took up the=20 challenge of doing this things more correctly by installing the attached. --------------H2q1gelg9asgz40i29t5buIH Content-Type: text/x-patch; charset=UTF-8; name="0001-timeout-round-timeouts-up.patch" Content-Disposition: attachment; filename="0001-timeout-round-timeouts-up.patch" Content-Transfer-Encoding: base64 RnJvbSBhM2I4NjJlY2UyYWEwNGQ1YzBiNWU5M2ZlYzhlNjZlNDViOWIzNTYwIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBTYXQsIDUgQXByIDIwMjUgMDA6NTg6MjIgLTA3MDAKU3ViamVjdDogW1BBVENI XSB0aW1lb3V0OiByb3VuZCB0aW1lb3V0cyB1cApNSU1FLVZlcnNpb246IDEuMApDb250ZW50 LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNv ZGluZzogOGJpdAoKVGhpcyBoYW5kbGVzIHRpbWVvdXRzIGxpa2UgMTY3NzcyMTYuMDAwMDAw MDAxIGNvcnJlY3RseTsKZm9ybWVybHkgdGhlIHN1YnNlY29uZCBwYXJ0IG9mIHRoYXQgdGlt ZW91dCB3YXMgaWdub3JlZC4KKiBib290c3RyYXAuY29uZiAoZ251bGliX21vZHVsZXMpOiBB ZGQgZmVudi1yb3VuZGluZywgc2lnbmJpdC4KKiBzcmMvbG9jYWwubWsgKHNyY190aW1lb3V0 X0xEQUREKTogQXBwZW5kICQoRkVOVl9ST1VORElOR19MSUJNKS4KKiBzcmMvdGltZW91dC5j OiBJbmNsdWRlIGZlbnYuaCwgbWF0aC5oLgpEb27igJl0IGluY2x1ZGUgeHN0cnRvZC5oLCBh cyB4c3RydG9k4oCZcyBjaGVja2luZyBub3cgZ2V0cyBpbiB0aGUgd2F5LgoocGFyc2VfZHVy YXRpb24pOiBSb3VuZCB1cCB3aGVuIGNhbGxpbmcgY2xfc3RydG9kLgpDaGVjayBmb3IgLTFl LTEwMDAuICBEb27igJl0IGRvdWJsZS1yb3VuZCAxZS05LgoqIHRlc3RzL3RpbWVvdXQvdGlt ZW91dC1wYXJhbWV0ZXJzLnNoOiBUZXN0IGZvciAtMC4xLAotMWUtMTAwMCwgMWUtMTAwMC4K LS0tCiBib290c3RyYXAuY29uZiAgICAgICAgICAgICAgICAgICAgICB8ICAyICsrCiBzcmMv bG9jYWwubWsgICAgICAgICAgICAgICAgICAgICAgICB8ICAzICsrKwogc3JjL3RpbWVvdXQu YyAgICAgICAgICAgICAgICAgICAgICAgfCAzOSArKysrKysrKysrKysrKysrKysrKysrKyst LS0tLQogdGVzdHMvdGltZW91dC90aW1lb3V0LXBhcmFtZXRlcnMuc2ggfCAgNyArKysrKy0K IDQgZmlsZXMgY2hhbmdlZCwgNDQgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9ib290c3RyYXAuY29uZiBiL2Jvb3RzdHJhcC5jb25mCmluZGV4IGM5OTgz OGU5NS4uM2MxMzNlZjcxIDEwMDY0NAotLS0gYS9ib290c3RyYXAuY29uZgorKysgYi9ib290 c3RyYXAuY29uZgpAQCAtOTksNiArOTksNyBAQCBnbnVsaWJfbW9kdWxlcz0iCiAgIGZkYXRh c3luYwogICBmZG9wZW4KICAgZmR1dGltZW5zYXQKKyAgZmVudi1yb3VuZGluZwogICBmaWxl LWhhcy1hY2wKICAgZmlsZS10eXBlCiAgIGZpbGVibG9ja3MKQEAgLTI0Miw2ICsyNDMsNyBA QCBnbnVsaWJfbW9kdWxlcz0iCiAgIHNldHRpbWUKICAgc2lnMnN0cgogICBzaWdhY3Rpb24K KyAgc2lnbmJpdAogICBza2lwY2hhcnMKICAgc21hY2sKICAgc3NpemVfdApkaWZmIC0tZ2l0 IGEvc3JjL2xvY2FsLm1rIGIvc3JjL2xvY2FsLm1rCmluZGV4IGZkOWRjODFjMi4uMGE0ZTNh ZjQzIDEwMDY0NAotLS0gYS9zcmMvbG9jYWwubWsKKysrIGIvc3JjL2xvY2FsLm1rCkBAIC0y NTcsNiArMjU3LDkgQEAgc3JjX3N0YXRfTERBREQgKz0gJChMSUJfU0VMSU5VWCkKICMgZm9y IG52bGlzdF9sb29rdXBfdWludDY0X2FycmF5CiBzcmNfc3RhdF9MREFERCArPSAkKExJQl9O VlBBSVIpCiAKKyMgZm9yIGZlZ2V0cm91bmQsIGZlc2V0cm91bmQKK3NyY190aW1lb3V0X0xE QUREICs9ICQoRkVOVl9ST1VORElOR19MSUJNKQorCiAjIGZvciBnZXR0aW1lLCBzZXR0aW1l LCB0ZW1wbmFtZSwgdXRpbWVjbXAsIHV0aW1lbnMKIGNvcHlfbGRhZGQgKz0gJChDTE9DS19U SU1FX0xJQikKIHNyY19kYXRlX0xEQUREICs9ICQoQ0xPQ0tfVElNRV9MSUIpCmRpZmYgLS1n aXQgYS9zcmMvdGltZW91dC5jIGIvc3JjL3RpbWVvdXQuYwppbmRleCA2NzU2Y2Q4ODguLjU5 NDdjMTk0MiAxMDA2NDQKLS0tIGEvc3JjL3RpbWVvdXQuYworKysgYi9zcmMvdGltZW91dC5j CkBAIC00NSw3ICs0NSw5IEBACiAgICBXcml0dGVuIGJ5IFDDoWRyYWlnIEJyYWR5LiAgKi8K IAogI2luY2x1ZGUgPGNvbmZpZy5oPgorI2luY2x1ZGUgPGZlbnYuaD4KICNpbmNsdWRlIDxn ZXRvcHQuaD4KKyNpbmNsdWRlIDxtYXRoLmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNs dWRlIDxzeXMvdHlwZXMuaD4KICNpbmNsdWRlIDxzaWduYWwuaD4KQEAgLTU2LDcgKzU4LDYg QEAKIAogI2luY2x1ZGUgInN5c3RlbS5oIgogI2luY2x1ZGUgImNsLXN0cnRvZC5oIgotI2lu Y2x1ZGUgInhzdHJ0b2QuaCIKICNpbmNsdWRlICJzaWcyc3RyLmgiCiAjaW5jbHVkZSAib3Bl cmFuZDJzaWcuaCIKICNpbmNsdWRlICJxdW90ZS5oIgpAQCAtMzU2LDEyICszNTcsMjkgQEAg YXBwbHlfdGltZV9zdWZmaXggKGRvdWJsZSAqeCwgY2hhciBzdWZmaXhfY2hhcikKIHN0YXRp YyBkb3VibGUKIHBhcnNlX2R1cmF0aW9uIChjaGFyIGNvbnN0ICpzdHIpCiB7Ci0gIGRvdWJs ZSBkdXJhdGlvbjsKLSAgY2hhciBjb25zdCAqZXA7CisgIC8qIElmIHBvc3NpYmxlIHRlbGwg c3RydG9kIHRvIHJvdW5kIHVwLCBzbyB0aGF0IHdlIGFsd2F5cyB3YWl0IGF0CisgICAgIGxl YXN0IGFzIGxvbmcgYXMgU1RSIHNwZWNpZmllcy4gIEFsdGhvdWdoIFN0YW5kYXJkIEMgcmVx dWlyZXMKKyAgICAgRkVOVl9BQ0NFU1MgT04sIGRvbid0IGJvdGhlciBpZiB1c2luZyBHQ0Mg YXMgaXQgd2FybnMuICAqLworI2lmZGVmIEZFX1VQV0FSRAorIyBpZiAhZGVmaW5lZCBfX0dO VUNfXyAmJiAxOTk5MDEgPD0gX19TVERDX1ZFUlNJT05fXworIyAgcHJhZ21hIFNUREMgRkVO Vl9BQ0NFU1MgT04KKyMgZW5kaWYKKyAgaW50IHJvdW5kID0gZmVnZXRyb3VuZCAoKTsKKyAg ZmVzZXRyb3VuZCAoRkVfVVBXQVJEKTsKKyNlbmRpZgorCisgIGNoYXIgKmVwOworICBkb3Vi bGUgZHVyYXRpb24gPSBjbF9zdHJ0b2QgKHN0ciwgJmVwKTsKKworI2lmZGVmIEZFX1VQV0FS RAorICBmZXNldHJvdW5kIChyb3VuZCk7CisjZW5kaWYKIAotICBpZiAoISAoeHN0cnRvZCAo c3RyLCAmZXAsICZkdXJhdGlvbiwgY2xfc3RydG9kKSB8fCBlcnJubyA9PSBFUkFOR0UpCisg IGlmIChlcCA9PSBzdHIKICAgICAgIC8qIE5vbm5lZ2F0aXZlIGludGVydmFsLiAgKi8KICAg ICAgIHx8ICEgKDAgPD0gZHVyYXRpb24pCisgICAgICAvKiBUaGUgaW50ZXJ2YWwgZGlkIG5v dCB1bmRlcmZsb3cgdG8gLTAuICAqLworICAgICAgfHwgKHNpZ25iaXQgKGR1cmF0aW9uKSAm JiBlcnJubyA9PSBFUkFOR0UpCiAgICAgICAvKiBObyBleHRyYSBjaGFycyBhZnRlciB0aGUg bnVtYmVyIGFuZCBhbiBvcHRpb25hbCBzLG0saCxkIGNoYXIuICAqLwogICAgICAgfHwgKCpl cCAmJiAqKGVwICsgMSkpCiAgICAgICAvKiBDaGVjayBhbnkgc3VmZml4IGNoYXIgYW5kIHVw ZGF0ZSB0aW1lb3V0IGJhc2VkIG9uIHRoZSBzdWZmaXguICAqLwpAQCAtMzcxLDkgKzM4OSwx OCBAQCBwYXJzZV9kdXJhdGlvbiAoY2hhciBjb25zdCAqc3RyKQogICAgICAgdXNhZ2UgKEVY SVRfQ0FOQ0VMRUQpOwogICAgIH0KIAotICAvKiBDbGFtcCB1bmRlcmZsb3cgdG8gMW5zLCBh cyAwIGRpc2FibGVzIHRoZSB0aW1lb3V0LiAgKi8KKyAgLyogRG8gbm90IGxldCB0aGUgZHVy YXRpb24gdW5kZXJmbG93IHRvIDAsIGFzIDAgZGlzYWJsZXMgdGhlIHRpbWVvdXQuCisgICAg IFVzZSAyKiotMzAgaW5zdGVhZCBvZiAwOyBzZXR0aW1lb3V0IHdpbGwgcm91bmQgaXQgdXAg dG8gMSBucywKKyAgICAgd2hlcmVhcyAxZS05IG1pZ2h0IGRvdWJsZS1yb3VuZCB0byAyIG5z LgorCisgICAgIElmIEZFX1VQV0FSRCBpcyBkZWZpbmVkLCB0aGlzIGNvZGUgaXMgbm90IG5l ZWRlZCBvbiBnbGliYyBhcyBpdHMKKyAgICAgc3RydG9kIHJvdW5kcyB1cHdhcmQgY29ycmVj dGx5LiAgQWx0aG91Z2ggdGhpcyBjb2RlIG1pZ2h0IG5vdCBiZQorICAgICBuZWVkZWQgb24g bm9uLWdsaWJjIHBsYXRmb3JtcyB0b28sIGl0J3MgdG9vIG11Y2ggdHJvdWJsZSB0bworICAg ICB3b3JyeSBhYm91dCB0aGF0LiAgKi8KKyNpZiAhZGVmaW5lZCBGRV9VUFdBUkQgfHwgIWRl ZmluZWQgX19HTElCQ19fCiAgIGlmIChkdXJhdGlvbiA9PSAwICYmIGVycm5vID09IEVSQU5H RSkKLSAgICBkdXJhdGlvbiA9IDFlLTk7CisgICAgZHVyYXRpb24gPSA5LjMxMzIyNTc0NjE1 NDc4NWUtMTA7CisjZW5kaWYKIAogICByZXR1cm4gZHVyYXRpb247CiB9CmRpZmYgLS1naXQg YS90ZXN0cy90aW1lb3V0L3RpbWVvdXQtcGFyYW1ldGVycy5zaCBiL3Rlc3RzL3RpbWVvdXQv dGltZW91dC1wYXJhbWV0ZXJzLnNoCmluZGV4IDg0YjQ1MGU5MC4uNDA4ODQ2MjYyIDEwMDc1 NQotLS0gYS90ZXN0cy90aW1lb3V0L3RpbWVvdXQtcGFyYW1ldGVycy5zaAorKysgYi90ZXN0 cy90aW1lb3V0L3RpbWVvdXQtcGFyYW1ldGVycy5zaApAQCAtMjMsOCArMjMsMTAgQEAgZ2V0 bGltaXRzXwogCiAjIGludGVybmFsIGVycm9ycyBhcmUgMTI1LCBkaXN0aW5jdCBmcm9tIGV4 ZWN1dGlvbiBmYWlsdXJlCiAKLSMgaW52YWxpZCB0aW1lb3V0CisjIGludmFsaWQgdGltZW91 dHMKIHJldHVybnNfIDEyNSB0aW1lb3V0IGludmFsaWQgc2xlZXAgMCB8fCBmYWlsPTEKK3Jl dHVybnNfIDEyNSB0aW1lb3V0ICcgLTAuMScgc2xlZXAgMCB8fCBmYWlsPTEKK3JldHVybnNf IDEyNSB0aW1lb3V0ICcgLTFlLTEwMDAwJyBzbGVlcCAwIHx8IGZhaWw9MQogCiAjIGludmFs aWQga2lsbCBkZWxheQogcmV0dXJuc18gMTI1IHRpbWVvdXQgLS1raWxsLWFmdGVyPWludmFs aWQgMSBzbGVlcCAwIHx8IGZhaWw9MQpAQCAtMzgsNiArNDAsOSBAQCB0aW1lb3V0IDEwLjM0 IHNsZWVwIDAgfHwgZmFpbD0xCiAjIG5hbm9zZWNvbmRzIHBvdGVudGlhbGx5IHN1cHBvcnRl ZAogdGltZW91dCA5Ljk5OTk5OTk5OSBzbGVlcCAwIHx8IGZhaWw9MQogCisjIHJvdW5kIHVu ZGVyZmxvdyB1cCB0byAxIG5zCityZXR1cm5zXyAxMjQgdGltZW91dCAxZS0xMDAwMCBzbGVl cCAxIHx8IGZhaWwKKwogIyBpbnZhbGlkIHNpZ25hbCBzcGVjCiByZXR1cm5zXyAxMjUgdGlt ZW91dCAtLXNpZ25hbD1pbnZhbGlkIDEgc2xlZXAgMCB8fCBmYWlsPTEKIAotLSAKMi40NS4y Cgo= --------------H2q1gelg9asgz40i29t5buIH-- From debbugs-submit-bounces@debbugs.gnu.org Sat Apr 05 07:04:01 2025 Received: (at 77535) by debbugs.gnu.org; 5 Apr 2025 11:04:01 +0000 Received: from localhost ([127.0.0.1]:41728 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u11Jg-0003X2-Vb for submit@debbugs.gnu.org; Sat, 05 Apr 2025 07:04:01 -0400 Received: from mail-wm1-x334.google.com ([2a00:1450:4864:20::334]:58395) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1u11Je-0003Wj-82 for 77535@debbugs.gnu.org; Sat, 05 Apr 2025 07:03:59 -0400 Received: by mail-wm1-x334.google.com with SMTP id 5b1f17b1804b1-43cf05f0c3eso17708245e9.0 for <77535@debbugs.gnu.org>; Sat, 05 Apr 2025 04:03:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1743851032; x=1744455832; darn=debbugs.gnu.org; h=in-reply-to:from:content-language:references:cc:to:subject :user-agent:mime-version:date:message-id:sender:from:to:cc:subject :date:message-id:reply-to; bh=XGnDf6vCOoiQ8aKWEP8pE60C9yKy6hJ2WCOV/gX3A2E=; b=H/HVk5MD1WBLn/oDTx8SyNW4p9nnNgi5Vgm+8OL+LPPrHtYKq17Uu9KqpMm0d0EddU H1FbtuLG1Bxk5kkPl/tmdADnkNHVQ3rv8zWqNzI+SAt/9C2YG6Lf/xOncq/HTpaJq3TN 46zqfARTzgoU8P/J/QiWSKDTLKtrBGm9XyMC762WHVd/H2XuNToP4vJbVzDzpkd2klkA LWh+CN4luaRHEIsAfEHqXmBmr+GkdGkPVRkWXAVZ02MfH2t6O/C87YZDFY3dSCkdYYDA jg41S4+52uojNq7LpAO5cC3wTRgURuo8t/mZhG71PlI5TFtgRr0qMMJaCgoG1W7ky+zC tv/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743851032; x=1744455832; h=in-reply-to:from:content-language:references:cc:to:subject :user-agent:mime-version:date:message-id:sender:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=XGnDf6vCOoiQ8aKWEP8pE60C9yKy6hJ2WCOV/gX3A2E=; b=p1JL7fdmKi5lIkjA0IkCTKvjaWFm8VVqDjA3aN6/sN112VVYjjU9HVeBTEZgWT6T3q EGx+ZPLxAFbP/Ogx82ifLRNGG3t4fKdSk6XBNMCufJBQbTkMtBeICAM7GK73u3PrkJdf RyhnQfG9DNuLyLy1vmHtvt2MBtB9FOrBR+RoRnCi9CX8RtZcI4CNR0xDczFbP4R3S1x0 OLeoIebEQDXZC9fRGGyCyeCHZy+49xUKf+vUo6zO9EaZiz6f9Ohl/jq786g23vhbF9Ic 7rgRYnO45auHM0sDVvL0WrjPBarWLaVoexsxHF5irJ+pJdZyrZ0SrfIEQvkGFHqY2lW1 YwdQ== X-Forwarded-Encrypted: i=1; AJvYcCXWfddHjJImVec33BS8lmDA3YlVcxpacq9+oN0riSNK95XC8bhjWpgSDnMWw/rwBk3DJYvn4Q==@debbugs.gnu.org X-Gm-Message-State: AOJu0Yyxz28rhxGHWQa/rzxil6VTk1wh7cLwfMQcqMeUGBlNYxQ8R6Gz Uya6yHKzygkyvwpQRc8125buOsIi7aXK2wGosWyKLhtASyUk05bB X-Gm-Gg: ASbGnctfOcfRkdDnHhJc0sFgmlHvQE0DES7moIx1aOcdT4Xfp+xfz9O4I+2bILyjE1P 0q+nhSOoT0cpksMASWCUfUNrtrr5FCnwkMNiZw/b4dREscnDkspiE61bgvNFF3hYmIrHwY2Rayc BByWK3YgfPWt3sDMfifxNRLC/+EHx2nUkT4/wkW+XuHI8Hf6v3QLGVenGmqQiipD0uIfezUAZ9z emr52IKyrv7iSIBzrMVpT0JgPpH9bHv5KYas0ifKNeZvh06U0XtT2qnqFg19g8tSECjhs3irm3H 1tOh+ag4uvbbXJrdGcCgB1vm6f1mBTtEruwP9XOpIy5HE6X++RsjlB+1+F0LRlLO06IAHZBFl41 TcAyOpr/13KZMmWCk3TZZ2/yt X-Google-Smtp-Source: AGHT+IH6ZIzNJ3Br1/i8IOXG3lfwmswffNq/VorkKNgKCOBkRQysAOQbRBA8GGu4urkpMi3LLSg7RA== X-Received: by 2002:a05:600c:41d2:b0:43d:683:8caa with SMTP id 5b1f17b1804b1-43ed506213emr38128185e9.15.1743851031422; Sat, 05 Apr 2025 04:03:51 -0700 (PDT) Received: from [192.168.1.31] (86-44-211-146-dynamic.agg2.lod.rsl-rtd.eircom.net. [86.44.211.146]) by smtp.googlemail.com with ESMTPSA id ffacd0b85a97d-39c30226cf6sm6505742f8f.87.2025.04.05.04.03.50 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 05 Apr 2025 04:03:50 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------HAUvQaIq0TZ85wYGNjgbvivM" Message-ID: Date: Sat, 5 Apr 2025 12:03:49 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Beta Subject: Re: bug#77535: timeout treats very short durations as `0` To: Paul Eggert , 77535@debbugs.gnu.org References: <4ee5b797-d038-4392-8c43-d3321903f38e@cs.ucla.edu> Content-Language: en-US From: =?UTF-8?Q?P=C3=A1draig_Brady?= In-Reply-To: <4ee5b797-d038-4392-8c43-d3321903f38e@cs.ucla.edu> X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77535 Cc: nicolas@boichat.ch 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: -1.0 (-) This is a multi-part message in MIME format. --------------HAUvQaIq0TZ85wYGNjgbvivM Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 05/04/2025 09:03, Paul Eggert wrote: > On 2025-04-04 12:27, Pádraig Brady wrote: >> +  /* Clamp underflow to 1ns, as 0 disables the timeout.  */ >> +  if (duration == 0 && errno == ERANGE) >> +    duration = 1e-9; > > That isn't exactly right as the 1e-9 double-rounds to 2e-9 when we > compute the struct timespec. Also, even with the patch the code > mishandles 16777216.000000001 (2**24 + 10**-9) by treating it as if it > were just 16777216. These are tiny bugs, I know, but I took up the > challenge of doing this things more correctly by installing the attached. This is the first time coreutils is linking with libm. So practically that does add measurable overhead: $ time seq 10000 | xargs -n1 src/timeout-old >/dev/null real 0m7.139s $ time seq 10000 | xargs -n1 src/timeout >/dev/null real 0m8.161s So on my 2.6GHz i7-5600U we're adding 102,200 ns to the startup time, to address theoretical single nanosecond issues. Given the code is also more complex, I'm thinking using libm is not worth it? BTW I'll apply the attached cleanups if we keep the libm dependency. cheers, Pádraig --------------HAUvQaIq0TZ85wYGNjgbvivM Content-Type: text/x-patch; charset=UTF-8; name="timeout-round-tweaks.patch" Content-Disposition: attachment; filename="timeout-round-tweaks.patch" Content-Transfer-Encoding: base64 RnJvbSA0MzY4ZDIxZmJkZGFmNTM5NzA4NzIxMGM0OWIzOTg0MTRlMDJjOTMzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/UD1DMz1BMWRyYWlnPTIwQnJhZHk/ PSA8UEBkcmFpZ0JyYWR5LmNvbT4KRGF0ZTogU2F0LCA1IEFwciAyMDI1IDExOjI3OjMyICsw MTAwClN1YmplY3Q6IFtQQVRDSF0gbWFpbnQ6IGFkanVzdG1lbnRzIHRvIHJlY2VudCB0aW1l b3V0IGNoYW5nZQoKKiAuZ2l0aWdub3JlOiBBZGQgL2xpYi9mZW52LmggdG8gaWdub3JlIGxp c3QuCiogdGVzdHMvdGltZW91dC90aW1lb3V0LXBhcmFtZXRlcnMuc2g6IFVzZSBhIHNsZWVw IGxlbmd0aCBvZiAxMHMKdG8gYmUgY29uc2lzdGVudCB3aXRoIHRoZSBwYXR0ZXJuIHdoZXJl IHdlIHVzZSB0aGlzIGxhcmdlciB0aW1lCndoZW4gaXQgZG9lcyBub3Qgc2xvdyBkb3duIGEg dGVzdCwgYnV0IGFsc28gcHJvdmlkZXMgcHJvdGVjdGlvbgphZ2FpbnN0IGEgaHVuZyB0ZXN0 LCBhbmQgYmV0dGVyIGF2b2lkYW5jZSBvZiBmYWxzZSBmYWlsdXJlcyBkdWUKdG8gcmFjZXMg b24gdmVyeSBsb2FkZWQgc3lzdGVtcy4gIEFsc28gZml4IHRoZSBzZXR0aW5nIG9mIEZBSUwu CiogdGVzdHMvdGltZW91dC90aW1lb3V0LWxhcmdlLXBhcmFtZXRlcnMuc2g6IFJlbW92ZSBk dXBsaWNhdGVkIHRlc3QuCi0tLQogLmdpdGlnbm9yZSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAxICsKIHRlc3RzL3RpbWVvdXQvdGltZW91dC1sYXJnZS1wYXJhbWV0ZXJz LnNoIHwgMyAtLS0KIHRlc3RzL3RpbWVvdXQvdGltZW91dC1wYXJhbWV0ZXJzLnNoICAgICAg IHwgMiArLQogMyBmaWxlcyBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvLmdpdGlnbm9yZSBiLy5naXRpZ25vcmUKaW5kZXggZjRhMTdh ZDA0Li40ZGMzOWFlNTUgMTAwNjQ0Ci0tLSBhLy5naXRpZ25vcmUKKysrIGIvLmdpdGlnbm9y ZQpAQCAtNjcsNiArNjcsNyBAQAogL2xpYi9lcnJuby5oCiAvbGliL2Vycm9yLmgKIC9saWIv ZmNudGwuaAorL2xpYi9mZW52LmgKIC9saWIvZmxvYXQuaAogL2xpYi9mbm1hdGNoLmgKIC9s aWIvZ2V0b3B0LWNkZWZzLmgKZGlmZiAtLWdpdCBhL3Rlc3RzL3RpbWVvdXQvdGltZW91dC1s YXJnZS1wYXJhbWV0ZXJzLnNoIGIvdGVzdHMvdGltZW91dC90aW1lb3V0LWxhcmdlLXBhcmFt ZXRlcnMuc2gKaW5kZXggYTUzOTVkMTUzLi41NjY5ODEwZTggMTAwNzU1Ci0tLSBhL3Rlc3Rz L3RpbWVvdXQvdGltZW91dC1sYXJnZS1wYXJhbWV0ZXJzLnNoCisrKyBiL3Rlc3RzL3RpbWVv dXQvdGltZW91dC1sYXJnZS1wYXJhbWV0ZXJzLnNoCkBAIC00Myw3ICs0Myw0IEBAIHRpbWVv dXQgMi4zNGUrNWQgc2xlZXAgMCB8fCBmYWlsPTEKIHRpbWVvdXQgJExEQkxfTUFYIHNsZWVw IDAgfHwgZmFpbD0xCiByZXR1cm5zXyAxMjUgdGltZW91dCAtLSAtJExEQkxfTUFYIHNsZWVw IDAgfHwgZmFpbD0xCiAKLSMgRW5zdXJlIHVuZGVyZmxvdyB0aW1lcyBvdXQgaW1tZWRpYXRl bHkKLXJldHVybnNfIDEyNCB0aW1lb3V0IDFlLTUwMDAgc2xlZXAgMTAgfHwgZmFpbD0xCi0K IEV4aXQgJGZhaWwKZGlmZiAtLWdpdCBhL3Rlc3RzL3RpbWVvdXQvdGltZW91dC1wYXJhbWV0 ZXJzLnNoIGIvdGVzdHMvdGltZW91dC90aW1lb3V0LXBhcmFtZXRlcnMuc2gKaW5kZXggNDA4 ODQ2MjYyLi5jNGIyMjAyYjQgMTAwNzU1Ci0tLSBhL3Rlc3RzL3RpbWVvdXQvdGltZW91dC1w YXJhbWV0ZXJzLnNoCisrKyBiL3Rlc3RzL3RpbWVvdXQvdGltZW91dC1wYXJhbWV0ZXJzLnNo CkBAIC00MSw3ICs0MSw3IEBAIHRpbWVvdXQgMTAuMzQgc2xlZXAgMCB8fCBmYWlsPTEKIHRp bWVvdXQgOS45OTk5OTk5OTkgc2xlZXAgMCB8fCBmYWlsPTEKIAogIyByb3VuZCB1bmRlcmZs b3cgdXAgdG8gMSBucwotcmV0dXJuc18gMTI0IHRpbWVvdXQgMWUtMTAwMDAgc2xlZXAgMSB8 fCBmYWlsCityZXR1cm5zXyAxMjQgdGltZW91dCAxZS0xMDAwMCBzbGVlcCAxMCB8fCBmYWls PTEKIAogIyBpbnZhbGlkIHNpZ25hbCBzcGVjCiByZXR1cm5zXyAxMjUgdGltZW91dCAtLXNp Z25hbD1pbnZhbGlkIDEgc2xlZXAgMCB8fCBmYWlsPTEKLS0gCjIuNDguMQoK --------------HAUvQaIq0TZ85wYGNjgbvivM-- From debbugs-submit-bounces@debbugs.gnu.org Sat Apr 05 14:02:54 2025 Received: (at 77535) by debbugs.gnu.org; 5 Apr 2025 18:02:54 +0000 Received: from localhost ([127.0.0.1]:44701 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u17r4-0002ye-3G for submit@debbugs.gnu.org; Sat, 05 Apr 2025 14:02:54 -0400 Received: from fhigh-b5-smtp.messagingengine.com ([202.12.124.156]:53535) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1u17r2-0002yP-2w for 77535@debbugs.gnu.org; Sat, 05 Apr 2025 14:02:52 -0400 Received: from phl-compute-12.internal (phl-compute-12.phl.internal [10.202.2.52]) by mailfhigh.stl.internal (Postfix) with ESMTP id 2A7B325400DA; Sat, 5 Apr 2025 14:02:46 -0400 (EDT) Received: from phl-imap-08 ([10.202.2.84]) by phl-compute-12.internal (MEProxy); Sat, 05 Apr 2025 14:02:46 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dimebar.com; h= cc:cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to; s=fm1; t=1743876166; x=1743962566; bh=Is2WGRdseq45xVSPbHTC2fWEdtRSvqpXLKLrwbsJA5k=; b= MRc670A7jgjTK4DLyF4YsF64GHwIBL50yNj226bC/1dvAr4YxJ0t1ROc+F89U+Of tXen5NujqYwHCziN5EGWBWzDjaFu7Ba8fYaYO/wcV4nN0WnVBwczkFdE6j7ef4tx YsehD5Ouf4gc9tw4Fo9s9u02U+eK1GIEYh+93rzkzdI2pO03hxoTTYmABJ1UT1Zk fAIv8cKb4FFobTclIGnFsShZqCaydMU8EHop7YBv8mzZ8uwKmX/NEHjaHlXARm02 XTr8Mi1+Dl1hq9/x9qBCemA7PAxcSg2VXfxdQPs34X2WXTbzRalBLvwpGfNT8liC ETL0uiTFewBgKdSBXsXdVQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1743876166; x= 1743962566; bh=Is2WGRdseq45xVSPbHTC2fWEdtRSvqpXLKLrwbsJA5k=; b=A jUJI2Fb/YQSSrFZl4seRpYn/eGAmwEnf6hkuuE/6/S7zb3br1aXGp4jKSazhq4uV PEmx+bdMjhpySi60QEkI/HqH7v4A+rAgrNbrETmwyJZAKUw7kOH5+67t2jmBhyLU OpqnBkQzocuSRsbEvH2fFX+YXiR3NnIIMacEr8nv9Rq841cImJXGANpkdEwBcpXG XTlHMqQvKlHUHc565iJFDMxo4ZfMYRKw4kValfdLn6jYGzzdPek2+c5sUEjYf9m9 DX+u1UGLAk+5eEvlZXOLF+T9qesU/dzqzhF6bipI8YmoTxH99JNYATNSyrhiPndo VARV9DB1XG4TS2QCek4Gg== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgdduleehtddvucetufdoteggodetrf dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih gvnhhtshculddquddttddmnecujfgurhepofggfffhvfevkfgjfhfutgfgsehtjeertder tddtnecuhfhrohhmpedfrfhhihhlihhpucftohiflhgrnhgushdfuceophhhrhdotghorh gvuhhtihhlshesughimhgvsggrrhdrtghomheqnecuggftrfgrthhtvghrnhepveetuddv jeelteduudekiefgteefgeevffdukeduledvkeetgeefvdduffffgeeunecuvehluhhsth gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepphhhrhdotghorhgvuhht ihhlshesughimhgvsggrrhdrtghomhdpnhgspghrtghpthhtohepgedpmhhouggvpehsmh htphhouhhtpdhrtghpthhtohepnhhitgholhgrshessghoihgthhgrthdrtghhpdhrtghp thhtohepvghgghgvrhhtsegtshdruhgtlhgrrdgvughupdhrtghpthhtohepjeejheefhe esuggvsggsuhhgshdrghhnuhdrohhrghdprhgtphhtthhopehpsegurhgrihhgsghrrggu hidrtghomh X-ME-Proxy: Feedback-ID: i3ef94498:Fastmail Received: by mailuser.phl.internal (Postfix, from userid 501) id 1CCB618A006E; Sat, 5 Apr 2025 14:02:45 -0400 (EDT) X-Mailer: MessagingEngine.com Webmail Interface MIME-Version: 1.0 X-ThreadId: T566a58710726c96a Date: Sat, 05 Apr 2025 19:02:24 +0100 From: "Philip Rowlands" To: =?UTF-8?Q?P=C3=A1draig_Brady?= , "Paul Eggert" , 77535@debbugs.gnu.org Message-Id: <6f86f5d8-8f67-4315-98b7-b0e43c0796bd@app.fastmail.com> In-Reply-To: References: <4ee5b797-d038-4392-8c43-d3321903f38e@cs.ucla.edu> Subject: Re: bug#77535: timeout treats very short durations as `0` Content-Type: text/plain Content-Transfer-Encoding: 7bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 77535 Cc: nicolas@boichat.ch 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: -1.7 (-) I was interested to see that the code makes uses of strtod, and how this interacts with the minute / hour / day suffix. $ strace -e trace=clock_nanosleep sleep 3 clock_nanosleep(CLOCK_REALTIME, 0, {tv_sec=3, tv_nsec=0}, $ strace -e trace=clock_nanosleep sleep 0xas clock_nanosleep(CLOCK_REALTIME, 0, {tv_sec=10, tv_nsec=0}, $ strace -e trace=clock_nanosleep sleep 0xam clock_nanosleep(CLOCK_REALTIME, 0, {tv_sec=600, tv_nsec=0}, $ strace -e trace=clock_nanosleep sleep 0xad clock_nanosleep(CLOCK_REALTIME, 0, {tv_sec=173, tv_nsec=0}, Here 0xad is interpreted as 173 seconds, not 10 days. It's a corner case, but should sleep(1) support or tolerate hex input, and if so, how should it handle the "d" suffix? FWIW I'd just vote to return an error for hex intervals. Cheers, Phil From debbugs-submit-bounces@debbugs.gnu.org Sat Apr 05 14:45:40 2025 Received: (at 77535) by debbugs.gnu.org; 5 Apr 2025 18:45:40 +0000 Received: from localhost ([127.0.0.1]:44778 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u18WR-00080W-Lx for submit@debbugs.gnu.org; Sat, 05 Apr 2025 14:45:39 -0400 Received: from mail-wm1-x32c.google.com ([2a00:1450:4864:20::32c]:45360) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1u18WJ-0007zz-4a for 77535@debbugs.gnu.org; Sat, 05 Apr 2025 14:45:31 -0400 Received: by mail-wm1-x32c.google.com with SMTP id 5b1f17b1804b1-43ed8d32a95so11710555e9.3 for <77535@debbugs.gnu.org>; Sat, 05 Apr 2025 11:45:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1743878725; x=1744483525; darn=debbugs.gnu.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :sender:from:to:cc:subject:date:message-id:reply-to; bh=AbxtZ4y6HoPlZhB0NiYqKC+W7eRxLoRcl9Z3+oPaSDU=; b=CJ/HR9FJVd2TWcSn8h3kD1YSjk86ZwrKmKmlScSq/ahod368vaW2WHPQHOsY44D24p Fj7w0inTjAlrWwmZ2W5DdvbjJxtuRRetovoQOSVTuC+8WnDwKpAK+W6rQWvOqjMGgdJ5 7g6N6nhPiS+PBx4FvuRa35csExfzuqFFzG8vJB+rwQkH5APmewaurhJOZAYiIDz09zVm hZdDmoZlDx6pz87lzug8R9lQ84APhFaPg3JhOIz8dDB0Boc1yGRZn+Iazxf6LFx7u6bp PjvrpAm013uG0VnX81mBhOaupCVA/vM0I5PzsmU2rRGZKXWicc6sb3oZ/0PRZDgbSyao Be9A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743878725; x=1744483525; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :sender:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=AbxtZ4y6HoPlZhB0NiYqKC+W7eRxLoRcl9Z3+oPaSDU=; b=X5ZHwg/irgS1sqSqpu1JbpntmoXxv6u2LUaTk4r+W2iJ6SjSYhNmFFn1ExDYGXwgzD IA2yzM35A6uEbPu/Vh9rALlAhgtEVK/CiRgMNuZrXmuhqh0f/uWuwADgoETdekAK+wM/ B2aXHN7On5olqHx8KXVMx0hB68h6qOeLavWQig2DSf1Lw5OlT4XV2JF3uXJa1epjjaRY nnhddM4ebfWfSKr46rvE2QFpHoCPv7Lpxt2/VeiprgK2Zlz7cgvxW4Vh9nYv883pC3Wp CZRMEcs5MlQD+xAB8xi3eomR/OHn6f7nkJ4+GLLE7tWR1qjhs8xgwZvzVpYgBRPsM0ih IHkA== X-Forwarded-Encrypted: i=1; AJvYcCUEfV5WkORI8FTPQZspWYrna6gpGIVvBLU6H+dwkKswlyj15Fvsel/ggBKc3fkiDpXT1wHRZg==@debbugs.gnu.org X-Gm-Message-State: AOJu0YyDvsjuBWpQEwI8An5Fi/6oVha+Rlo34VMG6BfCsh6jbz1m3uH8 NFiN+Qp6c2nYIVS/bvT+lpnI4cDTKgD2lINLP+g4iqEyKj5WSObA X-Gm-Gg: ASbGncsqfVOrQSpgwIaoHA005kwqIRjwsavUC+3dDRjJuJC4rPznJ4FHokZgPpuFutN nxEcjOSmZjYsHda5O6ZULGkaw3TJJKMlSyePCfsffXPTLOkSuGRjTSWz9+thc0+r6PGa4MHiAcd a+pRaCrfz2+hggm4DQLX0TC70DBkv+VfEfHkJQu4REn0qCIwEx1g37Y5Gatf5t3nMU4IntgV86Y yxoU1KelUMzHDYk38Z3RrcWbRvLbiyJkJTxz/kWNB1ocaQz26cSKzXYtiXccKWOSiEeRpsKWz3U txeXNQ+a+w00TZIr/E728T0jDxA6YNElOmNeE2t+2jAYzc9ph+g1eCiWGw3RwbyqWf2qfY7tQN8 ru1oPeHyCqhFMLQRGBvr+O9LnRTQgDXJtYZY= X-Google-Smtp-Source: AGHT+IEGW/Vfbea40vd9SsZN9dgMBdNXfxXLNMVD768+c6tmbqu83B5l/fiYz/pcZhETWna19RWskw== X-Received: by 2002:a05:600c:3c8d:b0:43b:cc42:c54f with SMTP id 5b1f17b1804b1-43ecf85f20amr59348315e9.14.1743878724779; Sat, 05 Apr 2025 11:45:24 -0700 (PDT) Received: from [192.168.1.31] (86-44-211-146-dynamic.agg2.lod.rsl-rtd.eircom.net. [86.44.211.146]) by smtp.googlemail.com with ESMTPSA id 5b1f17b1804b1-43ec16602bbsm83370195e9.9.2025.04.05.11.45.23 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 05 Apr 2025 11:45:24 -0700 (PDT) Message-ID: <0f2b5197-1aab-4b62-890d-91cf3a3e9013@draigBrady.com> Date: Sat, 5 Apr 2025 19:45:23 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Beta Subject: Re: bug#77535: timeout treats very short durations as `0` To: Philip Rowlands , Paul Eggert , 77535@debbugs.gnu.org References: <4ee5b797-d038-4392-8c43-d3321903f38e@cs.ucla.edu> <6f86f5d8-8f67-4315-98b7-b0e43c0796bd@app.fastmail.com> Content-Language: en-US From: =?UTF-8?Q?P=C3=A1draig_Brady?= In-Reply-To: <6f86f5d8-8f67-4315-98b7-b0e43c0796bd@app.fastmail.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77535 Cc: nicolas@boichat.ch 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: -1.0 (-) On 05/04/2025 19:02, Philip Rowlands wrote: > I was interested to see that the code makes uses of strtod, and how this interacts with the minute / hour / day suffix. > > $ strace -e trace=clock_nanosleep sleep 3 > clock_nanosleep(CLOCK_REALTIME, 0, {tv_sec=3, tv_nsec=0}, > > $ strace -e trace=clock_nanosleep sleep 0xas > clock_nanosleep(CLOCK_REALTIME, 0, {tv_sec=10, tv_nsec=0}, > > $ strace -e trace=clock_nanosleep sleep 0xam > clock_nanosleep(CLOCK_REALTIME, 0, {tv_sec=600, tv_nsec=0}, > > $ strace -e trace=clock_nanosleep sleep 0xad > clock_nanosleep(CLOCK_REALTIME, 0, {tv_sec=173, tv_nsec=0}, > > Here 0xad is interpreted as 173 seconds, not 10 days. > > It's a corner case, but should sleep(1) support or tolerate hex input, and if so, how should it handle the "d" suffix? FWIW I'd just vote to return an error for hex intervals. Good point :) Given FreeBSD and ksh sleep implementations also behave like GNU, we should probably just document the edge case that (day) suffixes are best avoided with hex inputs. ~$ ksh $ type sleep sleep is a shell builtin $ time sleep 0x10d real 4m29.00s cheers, Pádraig From debbugs-submit-bounces@debbugs.gnu.org Sat Apr 05 15:42:12 2025 Received: (at 77535) by debbugs.gnu.org; 5 Apr 2025 19:42:12 +0000 Received: from localhost ([127.0.0.1]:44976 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u19PA-0002vI-2Y for submit@debbugs.gnu.org; Sat, 05 Apr 2025 15:42:12 -0400 Received: from mail-wm1-x32d.google.com ([2a00:1450:4864:20::32d]:59762) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1u19P5-0002uK-QH for 77535@debbugs.gnu.org; Sat, 05 Apr 2025 15:42:10 -0400 Received: by mail-wm1-x32d.google.com with SMTP id 5b1f17b1804b1-43d0c18e84eso15897525e9.3 for <77535@debbugs.gnu.org>; Sat, 05 Apr 2025 12:42:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1743882121; x=1744486921; darn=debbugs.gnu.org; h=in-reply-to:content-language:references:cc:to:from:subject :user-agent:mime-version:date:message-id:sender:from:to:cc:subject :date:message-id:reply-to; bh=AyJykwlzRB7w7o1gXJorh3pkdXUuNtuf8AWcOmElo6k=; b=nHgOBmTcoCxlhVFTNQYdmCwbRCqFtwEPbjIbtFp+rDc50xVizEwrSTONsqNk9v2quP XqLIbqbe0daatcGXht8kECuPE2WdOPmmxf897iMIXK3+xccjY/cGsLQt5fpfQqIUYRry TpIgZpqNd6movREnZffZx7t4teyMraNkMu80yX0w2kYk9exrvAgeqiw3EFfOJpoq43PK 1nUa8xGtwPexXvh3j9cHYMt+QMRpLxigHoQGcgtkdPfjRw/fFOmO0vrhGd2+kJ/iMAcj HStw5cI/u6jBvQsP+P0X8b1zar/cvRLHZURF/duSXVnMN+jtKGOp2cdsrHMazb6MCADj 7pOw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743882121; x=1744486921; h=in-reply-to:content-language:references:cc:to:from:subject :user-agent:mime-version:date:message-id:sender:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=AyJykwlzRB7w7o1gXJorh3pkdXUuNtuf8AWcOmElo6k=; b=ZnIL3U4v6QfR9e0HdTdfxVAi3PsF6KY5EFWSf33jGold7zBQDucztL9N85ed+znM/Y fHyG0p4Ng1sRkPcIT0GNwG0mxHtIP+wbibr2BiCJKlGMsenEy8eLCuEidJiipbi0P+fW J17qOFEfisy0awpHOSmVG/LctLHr43GCnUO062Aabk6/6BTQwHCzlTspxy6TzdenLeDx Uilaf9IMlcepxw0G3UTLd5cxeeM09WHst7jNf7cSwj1WMl32KMDhcoWZESTtw1mBJHOJ hGQ9kJKBeJESt5VQ2T5yhWHPeiJci34ayznKShKfLIngPEVdX0PLEjvarO6JK3DvEJgx W5AQ== X-Forwarded-Encrypted: i=1; AJvYcCWSQdmZL0l/yq/AB/cmxDnuDLN2bn1hp5J0n6+rOKcJqdpfAhzR3vCaD84LoaKYKTcZ7wwL7g==@debbugs.gnu.org X-Gm-Message-State: AOJu0Yw5s4fxBF9c8lnoOl8CIzIXI0NRRkjpg0QMoJ9ve1oiQcWZMmn9 Xd1PITFohgjlfAKL3LaWXWaVVxr6dku2v/sW1ODgcUsoeOgHL1GR X-Gm-Gg: ASbGncuiohsGyWuFKhu6SSvKXhNold+VkJzQTsu8qdo2dV3EBeKiZ9h4plYy0qHuetu CP0HTQu5YXI5+jDYzFEdPTHQocQaYj3zCb+i+45Y+S/5908THfyZ0Oe1Nj71DeR/P95z96tMUWT lbTZEWAHR9HDWP2fLX3mCM+WDWNG9ER1MqAAXa+XC1pqaS4eYrkyQzDxIMyhnC8QZPnIMnVdI44 vNpf/hOnwzqz5C1vTCulBMruzqrMNDRKzeY/M9dTGgg1QK/c/kXwV12A7B3h0Xi0SBVKZxWx76F pFZneXhXeAtSuSzqEENPV2Rk9oM6gnZeXvf75hUQq4LYnGo+E5mhwfJjD3TGpKbXIhyzpPVQ14B n7S7QtUmeLZ8vn0ScNHcW4ghj X-Google-Smtp-Source: AGHT+IGz908jGwC4bbMHy6Ld8wjfdC21Ldppf7Rwi2wHdECJuZI5Kebt2JQN6mf6vSia73fJYgVILA== X-Received: by 2002:a05:600c:83c7:b0:43d:fa59:cc8f with SMTP id 5b1f17b1804b1-43ed0db6d58mr63943165e9.33.1743882121068; Sat, 05 Apr 2025 12:42:01 -0700 (PDT) Received: from [192.168.1.31] (86-44-211-146-dynamic.agg2.lod.rsl-rtd.eircom.net. [86.44.211.146]) by smtp.googlemail.com with ESMTPSA id 5b1f17b1804b1-43ea8d16d35sm103039155e9.0.2025.04.05.12.41.59 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 05 Apr 2025 12:41:59 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------jQ8OgWMCfctDAWeHt45GE070" Message-ID: Date: Sat, 5 Apr 2025 20:41:58 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Beta Subject: Re: bug#77535: timeout treats very short durations as `0` From: =?UTF-8?Q?P=C3=A1draig_Brady?= To: Philip Rowlands , 77535@debbugs.gnu.org References: <4ee5b797-d038-4392-8c43-d3321903f38e@cs.ucla.edu> <6f86f5d8-8f67-4315-98b7-b0e43c0796bd@app.fastmail.com> <0f2b5197-1aab-4b62-890d-91cf3a3e9013@draigBrady.com> Content-Language: en-US In-Reply-To: <0f2b5197-1aab-4b62-890d-91cf3a3e9013@draigBrady.com> X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77535 Cc: nicolas@boichat.ch 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: -1.0 (-) This is a multi-part message in MIME format. --------------jQ8OgWMCfctDAWeHt45GE070 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 05/04/2025 19:45, Pádraig Brady wrote: > On 05/04/2025 19:02, Philip Rowlands wrote: >> I was interested to see that the code makes uses of strtod, and how this interacts with the minute / hour / day suffix. >> >> $ strace -e trace=clock_nanosleep sleep 3 >> clock_nanosleep(CLOCK_REALTIME, 0, {tv_sec=3, tv_nsec=0}, >> >> $ strace -e trace=clock_nanosleep sleep 0xas >> clock_nanosleep(CLOCK_REALTIME, 0, {tv_sec=10, tv_nsec=0}, >> >> $ strace -e trace=clock_nanosleep sleep 0xam >> clock_nanosleep(CLOCK_REALTIME, 0, {tv_sec=600, tv_nsec=0}, >> >> $ strace -e trace=clock_nanosleep sleep 0xad >> clock_nanosleep(CLOCK_REALTIME, 0, {tv_sec=173, tv_nsec=0}, >> >> Here 0xad is interpreted as 173 seconds, not 10 days. >> >> It's a corner case, but should sleep(1) support or tolerate hex input, and if so, how should it handle the "d" suffix? FWIW I'd just vote to return an error for hex intervals. > > Good point :) > Given FreeBSD and ksh sleep implementations also behave like GNU, > we should probably just document the edge case that > (day) suffixes are best avoided with hex inputs. > > ~$ ksh > $ type sleep > sleep is a shell builtin > $ time sleep 0x10d > real 4m29.00s I'll apply the attached later to document this. cheers, Pádraig --------------jQ8OgWMCfctDAWeHt45GE070 Content-Type: text/x-patch; charset=UTF-8; name="coreutils-hex-duration-suffixes.patch" Content-Disposition: attachment; filename="coreutils-hex-duration-suffixes.patch" Content-Transfer-Encoding: base64 RnJvbSAyNzAyMjY2NjI3ZTgxYzAzMGQzNjk0MjgwMWIxZDA3NWEwMzk5ZDNhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/UD1DMz1BMWRyYWlnPTIwQnJhZHk/ PSA8UEBkcmFpZ0JyYWR5LmNvbT4KRGF0ZTogU2F0LCA1IEFwciAyMDI1IDIwOjI2OjIzICsw MTAwClN1YmplY3Q6IFtQQVRDSF0gZG9jOiBtZW50aW9uIHRoZSBlZGdlIGNhc2Ugb2YgZmxv YXRpbmcgcG9pbnQgZHVyYXRpb25zIHdpdGgKICdkJyBzdWZmaXgKCiogZG9jL2NvcmV1dGls cy50ZXhpIChzbGVlcCBpbnZvY2F0aW9uKTogTWVudGlvbiB0aGF0IHN1ZmZpeGVzIGFyZQpi ZXN0IGF2b2lkZWQgd2l0aCBoZXggYXJndW1lbnRzLgoodGltZW91dCBpbnZvY2F0aW9uKTog TGlrZXdpc2UuCiogdGVzdHMvbWlzYy9zbGVlcC5zaDogRW5zdXJlICdkJyBpcyBub3QgaW50 ZXJwcmV0ZWQgYXMgImRheSIuCi0tLQogZG9jL2NvcmV1dGlscy50ZXhpICB8IDcgKysrKysr KwogdGVzdHMvbWlzYy9zbGVlcC5zaCB8IDEgKwogMiBmaWxlcyBjaGFuZ2VkLCA4IGluc2Vy dGlvbnMoKykKCmRpZmYgLS1naXQgYS9kb2MvY29yZXV0aWxzLnRleGkgYi9kb2MvY29yZXV0 aWxzLnRleGkKaW5kZXggZDY2MzNmMDRjLi4yZDFmMTYyYWEgMTAwNjQ0Ci0tLSBhL2RvYy9j b3JldXRpbHMudGV4aQorKysgYi9kb2MvY29yZXV0aWxzLnRleGkKQEAgLTE4OTEzLDYgKzE4 OTEzLDExIEBAIEMgbG9jYWxlIChAcHhyZWZ7RmxvYXRpbmcgcG9pbnR9KSBmb2xsb3dlZCBi eSBhbiBvcHRpb25hbCB1bml0OgogQHNhbXB7aH0gZm9yIGhvdXJzCiBAc2FtcHtkfSBmb3Ig ZGF5cwogQGVuZCBkaXNwbGF5CitAbWFjcm8gaGV4RHVyYXRpb24KK05vdGUgaXQncyBiZXN0 IHRvIGF2b2lkIGNvbWJpbmluZyBzdWZmaXhlcyB3aXRoIGhleGFkZWNpbWFsIGFyZ3VtZW50 cywKK2FzIGFueSBAc2FtcHtkfSB3aWxsIEBlbXBoe25vdH0gYmUgaW50ZXJwcmV0ZWQgYXMg YSBzdWZmaXguCitAZW5kIG1hY3JvCitAaGV4RHVyYXRpb24KIEEgZHVyYXRpb24gb2YgMCBk aXNhYmxlcyB0aGUgYXNzb2NpYXRlZCB0aW1lb3V0LgogVGhlIGFjdHVhbCB0aW1lb3V0IGR1 cmF0aW9uIGlzIGRlcGVuZGVudCBvbiBzeXN0ZW0gY29uZGl0aW9ucywKIHdoaWNoIHNob3Vs ZCBiZSBlc3BlY2lhbGx5IGNvbnNpZGVyZWQgd2hlbiBzcGVjaWZ5aW5nIHN1Yi1zZWNvbmQg dGltZW91dHMuCkBAIC0xOTA4OSw2ICsxOTA5NCw4IEBAIG5vbi1uZWdhdGl2ZSBpbnRlZ2Vy IGFyZ3VtZW50IHdpdGhvdXQgYSBzdWZmaXgsIEdOVSBAY29tbWFuZHtzbGVlcH0KIGFsc28g YWNjZXB0cyB0d28gb3IgbW9yZSBhcmd1bWVudHMsIHVuaXQgc3VmZml4ZXMsIGFuZCBmbG9h dGluZy1wb2ludAogbnVtYmVycyBpbiBlaXRoZXIgdGhlIGN1cnJlbnQgb3IgdGhlIEMgbG9j YWxlLiAgQHhyZWZ7RmxvYXRpbmcgcG9pbnR9LgogCitAaGV4RHVyYXRpb24KKwogRm9yIGlu c3RhbmNlLCB0aGUgZm9sbG93aW5nIGNvdWxkIGJlIHVzZWQgdG8gQGNvbW1hbmR7c2xlZXB9 IGZvcgogMSBzZWNvbmQsIDIzNCBtaWxsaS0sIDU2NyBtaWNyby0gYW5kIDg5MCBuYW5vc2Vj b25kczoKIApkaWZmIC0tZ2l0IGEvdGVzdHMvbWlzYy9zbGVlcC5zaCBiL3Rlc3RzL21pc2Mv c2xlZXAuc2gKaW5kZXggZDFlM2JjNzZjLi42ODA2YTZmZTIgMTAwNzU1Ci0tLSBhL3Rlc3Rz L21pc2Mvc2xlZXAuc2gKKysrIGIvdGVzdHMvbWlzYy9zbGVlcC5zaApAQCAtMzIsNiArMzIs NyBAQCByZXR1cm5zXyAxIHRpbWVvdXQgMTAgc2xlZXAgfHwgZmFpbD0xCiAjIHN1YnNlY29u ZCBhY3R1YWwgc2xlZXAKIHRpbWVvdXQgMTAgc2xlZXAgMC4wMDEgfHwgZmFpbD0xCiB0aW1l b3V0IDEwIHNsZWVwIDB4LjAwMnAxIHx8IGZhaWw9MQordGltZW91dCAxMCBzbGVlcCAweDAu MDFkIHx8IGZhaWw9MSAgIyBkIGlzIHBhcnQgb2YgaGV4LCBub3QgYSBkYXkgc3VmZml4CiAK ICMgVXNpbmcgc21hbGwgdGltZW91dHMgZm9yIGxhcmdlciBzbGVlcHMgaXMgcmFjeSwKICMg YnV0IGZhbHNlIHBvc2l0aXZlcyBzaG91bGQgYmUgYXZvaWRlZCBvbiBtb3N0IHN5c3RlbXMK LS0gCjIuNDguMQoK --------------jQ8OgWMCfctDAWeHt45GE070-- From debbugs-submit-bounces@debbugs.gnu.org Sat Apr 05 16:57:05 2025 Received: (at 77535) by debbugs.gnu.org; 5 Apr 2025 20:57:06 +0000 Received: from localhost ([127.0.0.1]:45052 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u1AZd-00010V-B4 for submit@debbugs.gnu.org; Sat, 05 Apr 2025 16:57:05 -0400 Received: from mail-wr1-x430.google.com ([2a00:1450:4864:20::430]:59635) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1u1AZZ-0000zv-L0 for 77535@debbugs.gnu.org; Sat, 05 Apr 2025 16:57:03 -0400 Received: by mail-wr1-x430.google.com with SMTP id ffacd0b85a97d-3914bc3e01aso1925479f8f.2 for <77535@debbugs.gnu.org>; Sat, 05 Apr 2025 13:57:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1743886615; x=1744491415; darn=debbugs.gnu.org; h=in-reply-to:content-language:references:cc:to:from:subject :user-agent:mime-version:date:message-id:sender:from:to:cc:subject :date:message-id:reply-to; bh=hqr1zSDZFZmLN5xSReqTRtWnXV9VOn1/DqyusZIPDbg=; b=gHIHYxgk1kOXcq6DXF4kndrmpT/i5CDz199/WkukJ/7owvLNTykk8A2DRpFyQY1Gav 0SRihGIKCuIP9iQUQxsj0gEQseDKev/IXe19H0fCrVFCg5QL/KFStXJM0Wusy6armHcf t10zSct6hv9QBet5E6v8SA61C4QSzulq9z8S8gRyzKkeqncXIdTKoqy8nWEm2g3CeYAg s3ojIQKz1FpXAtlezZb1YG/1CDNK1L4SIhnyaSDJMczMmfblwMz7U/uR/LTlMT2A6h9o g1bK8ybo1VL42Qvx9niSxx0ucTVdK6zWx6MNlGwYBK6UDMNDu8tlClJJ7jFHCsL7LFNU dVJw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743886615; x=1744491415; h=in-reply-to:content-language:references:cc:to:from:subject :user-agent:mime-version:date:message-id:sender:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=hqr1zSDZFZmLN5xSReqTRtWnXV9VOn1/DqyusZIPDbg=; b=G4OxbauiXYqkmhlJmqbSYyKqDPLsZafPrJoplQEI3DJj0M5SRKOqXLSA3XAD0uFAlY BqLkMSapbr0Dg4EiTsYoL6m2IEpM+QHcJFW3g/Y6axW3bP0LMTMa3N4xEeMz2yzEKcIB Y2I2NK+5eaz0Cmk1f5s0DY2m11u49UTmZIlnTyyc6tcF8jN4Dm2S93R9Urzpqdkm4b12 4svLpeITMLpYpoTEYmTKTP72pCyJDYTlabQBNJB+l7ZyWiDbqM70iSSv3cwyYxy/Hgzq kfTbrtD+KNJMFV8ftQFtKTCSNIHl6m5YASeq6vJcHN+Cy7z0zl0ihbRSJL/EB5+QnUqz MetA== X-Forwarded-Encrypted: i=1; AJvYcCWvXMMKNqoEl6A65bdc2qWs7YJOMO3dgfIWxE2JANLi8fwwaJQbkAbMPF2J5ovq/t0icE5w9A==@debbugs.gnu.org X-Gm-Message-State: AOJu0YzPDD9dvketBKGMzrbXUmypoFhFJmiXHEifWVvA64LPIYBI7pgC VP4WazDol88XulBP6UJIyUFQK654QIPIstJxM2Cl+IvLf/FvyExv X-Gm-Gg: ASbGnctBuyPgFvcDucY5x0uyC7Ell5TmTUHanPBUeAfuLn5unxlFxEDXm1PCPj3RcWO 54MZbJMLguTm5M3HKFxxu7lSGhuUAsvbLc4UW9azGozheGiWxwZyOs7doLIfSk8zP3wCHGCKQZf fG+axnJrI/1arNOE8j+/CPEqpj3RGVmyXhwzXtRvjV1TemFr+WSQUtEFuvlRuDC6Df1eqmK3JIP pgrDbw4si5ETyV1ukptU8KCWDd5EkLHfVZ4ROwScwSQlaIKaKIAYcxlSB8JYenlPjd/N/tpH8mK KzYW3Lq9PdOhJj1syahng0zL06OdacwpO6nMtoM16Y2jSGE7bSkuf2/HLLr191C+BhfdUhpOhzc 2X4QnivK/2GgNsF8bY83MS5sW X-Google-Smtp-Source: AGHT+IFBzpPwZ5YABnWSgPquI/F1GngFYNAGMnNbZSyRz24HNg2OTLF9jq4RXs4LQr9Q1M2VFkfGaA== X-Received: by 2002:a5d:64e6:0:b0:39c:dcc:f589 with SMTP id ffacd0b85a97d-39d0de286fcmr6687346f8f.20.1743886614587; Sat, 05 Apr 2025 13:56:54 -0700 (PDT) Received: from [192.168.1.31] (86-44-211-146-dynamic.agg2.lod.rsl-rtd.eircom.net. [86.44.211.146]) by smtp.googlemail.com with ESMTPSA id 5b1f17b1804b1-43ec3174cf0sm85557255e9.0.2025.04.05.13.56.53 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 05 Apr 2025 13:56:54 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------DMG1ld6C2KNfs0Q0E7s6tN5B" Message-ID: <56f1d3a8-d83d-462a-9494-35380341ae29@draigBrady.com> Date: Sat, 5 Apr 2025 21:56:53 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Beta Subject: Re: bug#77535: timeout treats very short durations as `0` From: =?UTF-8?Q?P=C3=A1draig_Brady?= To: Paul Eggert , 77535@debbugs.gnu.org References: <4ee5b797-d038-4392-8c43-d3321903f38e@cs.ucla.edu> Content-Language: en-US In-Reply-To: X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77535 Cc: nicolas@boichat.ch 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: -1.0 (-) This is a multi-part message in MIME format. --------------DMG1ld6C2KNfs0Q0E7s6tN5B Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 05/04/2025 12:03, Pádraig Brady wrote: > On 05/04/2025 09:03, Paul Eggert wrote: >> On 2025-04-04 12:27, Pádraig Brady wrote: >>> +  /* Clamp underflow to 1ns, as 0 disables the timeout.  */ >>> +  if (duration == 0 && errno == ERANGE) >>> +    duration = 1e-9; >> >> That isn't exactly right as the 1e-9 double-rounds to 2e-9 when we >> compute the struct timespec. Also, even with the patch the code >> mishandles 16777216.000000001 (2**24 + 10**-9) by treating it as if it >> were just 16777216. These are tiny bugs, I know, but I took up the >> challenge of doing this things more correctly by installing the attached. > > This is the first time coreutils is linking with libm. > So practically that does add measurable overhead: > > $ time seq 10000 | xargs -n1 src/timeout-old >/dev/null > real 0m7.139s > > $ time seq 10000 | xargs -n1 src/timeout >/dev/null > real 0m8.161s > > So on my 2.6GHz i7-5600U we're adding 102,200 ns to the startup time, > to address theoretical single nanosecond issues. > Given the code is also more complex, I'm thinking using libm is not worth it? > > BTW I'll apply the attached cleanups if we keep the libm dependency. I'm going to apply the attached later to remove the libm dependency. It's just too much of a dependency for minimal functionality. All existing tests are maintained, and still pass. cheers, Pádraig --------------DMG1ld6C2KNfs0Q0E7s6tN5B Content-Type: text/x-patch; charset=UTF-8; name="timeout-remove-libm.patch" Content-Disposition: attachment; filename="timeout-remove-libm.patch" Content-Transfer-Encoding: base64 RnJvbSA3YjA1ZGY0OGE1OTk2M2MzMTAxMWIxODkxYjYzYTk5ZjlhODliYmYxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/UD1DMz1BMWRyYWlnPTIwQnJhZHk/ PSA8UEBkcmFpZ0JyYWR5LmNvbT4KRGF0ZTogU2F0LCA1IEFwciAyMDI1IDIxOjQ4OjA1ICsw MTAwClN1YmplY3Q6IFtQQVRDSF0gdGltZW91dDogcmVtb3ZlIGRlcGVuZGVuY2Ugb24gbGli bQoKVGhpcyB3YXMgc2VlbiB0byBhZGQgYWJvdXQgMTAwLDAwMCBucyB0byB0aGUgc3RhcnR1 cCB0aW1lLApvbiBhIDIuNiBHSHogaTctNTYwMFUgd2l0aCBnbGliYyAyLjQwLgoKKiBib290 c3RyYXAuY29uZjogUmVtb3ZlIGZlbnYtcm91bmRpbmcgYW5kIHNpZ25iaXQgZGVwcy4KKiBz cmMvbG9jYWwubWs6IFJlbW92ZSBmZW52IGxpYiBkZXBlbmRlbmN5LgoqIHNyYy90aW1lb3V0 LmMgKGlzX25lZ2F0aXZlKTogQSBuZXcgaGVscGVyIGZ1bmN0aW9uIHRvCmJlIGVxdWl2YWxl bnQgb2Ygc2lnbmJpdCBpbiB0aGUgdW5kZXJmbG93IGNhc2UuCihwYXJzZV9kdXJhdGlvbik6 IFJlbW92ZSB0aGUgcm91bmRpbmcgdXAgbG9naWMsCmFzIGEgbmFub3NlY29uZCBoZXJlIG9y IHRoZXJlIGhhcyBubyBzaWduaWZpY2FuY2UuCi0tLQogYm9vdHN0cmFwLmNvbmYgfCAgMiAt LQogc3JjL2xvY2FsLm1rICAgfCAgMyAtLS0KIHNyYy90aW1lb3V0LmMgIHwgMzYgKysrKysr KysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDExIGlu c2VydGlvbnMoKyksIDMwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Jvb3RzdHJhcC5j b25mIGIvYm9vdHN0cmFwLmNvbmYKaW5kZXggM2MxMzNlZjcxLi5jOTk4MzhlOTUgMTAwNjQ0 Ci0tLSBhL2Jvb3RzdHJhcC5jb25mCisrKyBiL2Jvb3RzdHJhcC5jb25mCkBAIC05OSw3ICs5 OSw2IEBAIGdudWxpYl9tb2R1bGVzPSIKICAgZmRhdGFzeW5jCiAgIGZkb3BlbgogICBmZHV0 aW1lbnNhdAotICBmZW52LXJvdW5kaW5nCiAgIGZpbGUtaGFzLWFjbAogICBmaWxlLXR5cGUK ICAgZmlsZWJsb2NrcwpAQCAtMjQzLDcgKzI0Miw2IEBAIGdudWxpYl9tb2R1bGVzPSIKICAg c2V0dGltZQogICBzaWcyc3RyCiAgIHNpZ2FjdGlvbgotICBzaWduYml0CiAgIHNraXBjaGFy cwogICBzbWFjawogICBzc2l6ZV90CmRpZmYgLS1naXQgYS9zcmMvbG9jYWwubWsgYi9zcmMv bG9jYWwubWsKaW5kZXggMGE0ZTNhZjQzLi5mZDlkYzgxYzIgMTAwNjQ0Ci0tLSBhL3NyYy9s b2NhbC5taworKysgYi9zcmMvbG9jYWwubWsKQEAgLTI1Nyw5ICsyNTcsNiBAQCBzcmNfc3Rh dF9MREFERCArPSAkKExJQl9TRUxJTlVYKQogIyBmb3IgbnZsaXN0X2xvb2t1cF91aW50NjRf YXJyYXkKIHNyY19zdGF0X0xEQUREICs9ICQoTElCX05WUEFJUikKIAotIyBmb3IgZmVnZXRy b3VuZCwgZmVzZXRyb3VuZAotc3JjX3RpbWVvdXRfTERBREQgKz0gJChGRU5WX1JPVU5ESU5H X0xJQk0pCi0KICMgZm9yIGdldHRpbWUsIHNldHRpbWUsIHRlbXBuYW1lLCB1dGltZWNtcCwg dXRpbWVucwogY29weV9sZGFkZCArPSAkKENMT0NLX1RJTUVfTElCKQogc3JjX2RhdGVfTERB REQgKz0gJChDTE9DS19USU1FX0xJQikKZGlmZiAtLWdpdCBhL3NyYy90aW1lb3V0LmMgYi9z cmMvdGltZW91dC5jCmluZGV4IDU5NDdjMTk0Mi4uZmU4ZWI0NTU5IDEwMDY0NAotLS0gYS9z cmMvdGltZW91dC5jCisrKyBiL3NyYy90aW1lb3V0LmMKQEAgLTQ1LDkgKzQ1LDggQEAKICAg IFdyaXR0ZW4gYnkgUMOhZHJhaWcgQnJhZHkuICAqLwogCiAjaW5jbHVkZSA8Y29uZmlnLmg+ Ci0jaW5jbHVkZSA8ZmVudi5oPgorI2luY2x1ZGUgPGN0eXBlLmg+CiAjaW5jbHVkZSA8Z2V0 b3B0Lmg+Ci0jaW5jbHVkZSA8bWF0aC5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVk ZSA8c3lzL3R5cGVzLmg+CiAjaW5jbHVkZSA8c2lnbmFsLmg+CkBAIC0zNTQsMzIgKzM1Mywy NSBAQCBhcHBseV90aW1lX3N1ZmZpeCAoZG91YmxlICp4LCBjaGFyIHN1ZmZpeF9jaGFyKQog ICByZXR1cm4gdHJ1ZTsKIH0KIAorQVRUUklCVVRFX1BVUkUgc3RhdGljIGJvb2wKK2lzX25l Z2F0aXZlIChjaGFyIGNvbnN0ICpudW0pCit7CisgIHdoaWxlICgqbnVtICYmIGlzc3BhY2Ug KHRvX3VjaGFyICgqbnVtKSkpCisgICAgbnVtKys7CisgIHJldHVybiAqbnVtID09ICctJzsK K30KKwogc3RhdGljIGRvdWJsZQogcGFyc2VfZHVyYXRpb24gKGNoYXIgY29uc3QgKnN0cikK IHsKLSAgLyogSWYgcG9zc2libGUgdGVsbCBzdHJ0b2QgdG8gcm91bmQgdXAsIHNvIHRoYXQg d2UgYWx3YXlzIHdhaXQgYXQKLSAgICAgbGVhc3QgYXMgbG9uZyBhcyBTVFIgc3BlY2lmaWVz LiAgQWx0aG91Z2ggU3RhbmRhcmQgQyByZXF1aXJlcwotICAgICBGRU5WX0FDQ0VTUyBPTiwg ZG9uJ3QgYm90aGVyIGlmIHVzaW5nIEdDQyBhcyBpdCB3YXJucy4gICovCi0jaWZkZWYgRkVf VVBXQVJECi0jIGlmICFkZWZpbmVkIF9fR05VQ19fICYmIDE5OTkwMSA8PSBfX1NURENfVkVS U0lPTl9fCi0jICBwcmFnbWEgU1REQyBGRU5WX0FDQ0VTUyBPTgotIyBlbmRpZgotICBpbnQg cm91bmQgPSBmZWdldHJvdW5kICgpOwotICBmZXNldHJvdW5kIChGRV9VUFdBUkQpOwotI2Vu ZGlmCi0KICAgY2hhciAqZXA7CiAgIGRvdWJsZSBkdXJhdGlvbiA9IGNsX3N0cnRvZCAoc3Ry LCAmZXApOwogCi0jaWZkZWYgRkVfVVBXQVJECi0gIGZlc2V0cm91bmQgKHJvdW5kKTsKLSNl bmRpZgotCiAgIGlmIChlcCA9PSBzdHIKICAgICAgIC8qIE5vbm5lZ2F0aXZlIGludGVydmFs LiAgKi8KICAgICAgIHx8ICEgKDAgPD0gZHVyYXRpb24pCiAgICAgICAvKiBUaGUgaW50ZXJ2 YWwgZGlkIG5vdCB1bmRlcmZsb3cgdG8gLTAuICAqLwotICAgICAgfHwgKHNpZ25iaXQgKGR1 cmF0aW9uKSAmJiBlcnJubyA9PSBFUkFOR0UpCisgICAgICB8fCAoZXJybm8gPT0gRVJBTkdF ICYmIGlzX25lZ2F0aXZlIChzdHIpKQogICAgICAgLyogTm8gZXh0cmEgY2hhcnMgYWZ0ZXIg dGhlIG51bWJlciBhbmQgYW4gb3B0aW9uYWwgcyxtLGgsZCBjaGFyLiAgKi8KICAgICAgIHx8 ICgqZXAgJiYgKihlcCArIDEpKQogICAgICAgLyogQ2hlY2sgYW55IHN1ZmZpeCBjaGFyIGFu ZCB1cGRhdGUgdGltZW91dCBiYXNlZCBvbiB0aGUgc3VmZml4LiAgKi8KQEAgLTM5MSwxNiAr MzgzLDEwIEBAIHBhcnNlX2R1cmF0aW9uIChjaGFyIGNvbnN0ICpzdHIpCiAKICAgLyogRG8g bm90IGxldCB0aGUgZHVyYXRpb24gdW5kZXJmbG93IHRvIDAsIGFzIDAgZGlzYWJsZXMgdGhl IHRpbWVvdXQuCiAgICAgIFVzZSAyKiotMzAgaW5zdGVhZCBvZiAwOyBzZXR0aW1lb3V0IHdp bGwgcm91bmQgaXQgdXAgdG8gMSBucywKLSAgICAgd2hlcmVhcyAxZS05IG1pZ2h0IGRvdWJs ZS1yb3VuZCB0byAyIG5zLgorICAgICB3aGVyZWFzIDFlLTkgbWlnaHQgZG91YmxlLXJvdW5k IHRvIDIgbnMuICAqLwogCi0gICAgIElmIEZFX1VQV0FSRCBpcyBkZWZpbmVkLCB0aGlzIGNv ZGUgaXMgbm90IG5lZWRlZCBvbiBnbGliYyBhcyBpdHMKLSAgICAgc3RydG9kIHJvdW5kcyB1 cHdhcmQgY29ycmVjdGx5LiAgQWx0aG91Z2ggdGhpcyBjb2RlIG1pZ2h0IG5vdCBiZQotICAg ICBuZWVkZWQgb24gbm9uLWdsaWJjIHBsYXRmb3JtcyB0b28sIGl0J3MgdG9vIG11Y2ggdHJv dWJsZSB0bwotICAgICB3b3JyeSBhYm91dCB0aGF0LiAgKi8KLSNpZiAhZGVmaW5lZCBGRV9V UFdBUkQgfHwgIWRlZmluZWQgX19HTElCQ19fCiAgIGlmIChkdXJhdGlvbiA9PSAwICYmIGVy cm5vID09IEVSQU5HRSkKICAgICBkdXJhdGlvbiA9IDkuMzEzMjI1NzQ2MTU0Nzg1ZS0xMDsK LSNlbmRpZgogCiAgIHJldHVybiBkdXJhdGlvbjsKIH0KLS0gCjIuNDguMQoK --------------DMG1ld6C2KNfs0Q0E7s6tN5B-- From debbugs-submit-bounces@debbugs.gnu.org Mon Apr 07 04:08:57 2025 Received: (at 77535) by debbugs.gnu.org; 7 Apr 2025 08:08:57 +0000 Received: from localhost ([127.0.0.1]:52284 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u1hXM-0006qh-N0 for submit@debbugs.gnu.org; Mon, 07 Apr 2025 04:08:57 -0400 Received: from mail.cs.ucla.edu ([131.179.128.66]:54242) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1u1hXH-0006pb-Kb for 77535@debbugs.gnu.org; Mon, 07 Apr 2025 04:08:53 -0400 Received: from localhost (localhost [127.0.0.1]) by mail.cs.ucla.edu (Postfix) with ESMTP id 21C0B3C01086E; Mon, 7 Apr 2025 01:08:45 -0700 (PDT) Received: from mail.cs.ucla.edu ([127.0.0.1]) by localhost (mail.cs.ucla.edu [127.0.0.1]) (amavis, port 10032) with ESMTP id NvKTheQ-UoZm; Mon, 7 Apr 2025 01:08:44 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by mail.cs.ucla.edu (Postfix) with ESMTP id 50AC53C010870; Mon, 7 Apr 2025 01:08:44 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.10.3 mail.cs.ucla.edu 50AC53C010870 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cs.ucla.edu; s=9D0B346E-2AEB-11ED-9476-E14B719DCE6C; t=1744013324; bh=N/bKuO8ZO4aLi+DLJFlXl3/zXGgMLOZaW1ae9BtLclc=; h=Message-ID:Date:MIME-Version:To:From; b=K1LpL1lWdW242Jwwu+4v2iTh6DIA8ceHzxhBO2TdrSlDikwXDb5C2YSaxrAaWCWlw bkykz8K2dNnT+71O4ScxDY9Tupvrc9i8Zvj381a5ADZZOfV/0nh3s+KPFAzoWmDTOC UXwbvb7Qs61peqnr8iLMQwu3veZHKL1Vgbev0P8jdgcnhnsTBeErwzJ6t5FcJUu0gK SecIMyfwPuJNqNuEfAeRw5cKCdH3Wr/4fKdzsAOWyeVYS3QBO+LwTecxuyVGrazZ3+ JEINwUQ4WUHaxqYyFtEFjYyxrDx2t8rrWiYI0XPRoRC4wwvtsGgRqjfhcDWPGbW/IW 0csvQ4IWPtwnA== X-Virus-Scanned: amavis at mail.cs.ucla.edu Received: from mail.cs.ucla.edu ([127.0.0.1]) by localhost (mail.cs.ucla.edu [127.0.0.1]) (amavis, port 10026) with ESMTP id Myu0qs5sdyhm; Mon, 7 Apr 2025 01:08:44 -0700 (PDT) Received: from [192.168.254.12] (47-147-225-25.fdr01.snmn.ca.ip.frontiernet.net [47.147.225.25]) by mail.cs.ucla.edu (Postfix) with ESMTPSA id 281183C01086E; Mon, 7 Apr 2025 01:08:44 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------SNeDiYrfyP5m27xg9nHg0t34" Message-ID: <1146f177-9d5e-4d86-bf83-4d02b5d32f23@cs.ucla.edu> Date: Mon, 7 Apr 2025 01:08:43 -0700 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: bug#77535: timeout treats very short durations as `0` To: =?UTF-8?Q?P=C3=A1draig_Brady?= References: <4ee5b797-d038-4392-8c43-d3321903f38e@cs.ucla.edu> <56f1d3a8-d83d-462a-9494-35380341ae29@draigBrady.com> Content-Language: en-US From: Paul Eggert Organization: UCLA Computer Science Department In-Reply-To: <56f1d3a8-d83d-462a-9494-35380341ae29@draigBrady.com> X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77535 Cc: 77535@debbugs.gnu.org, nicolas@boichat.ch 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: -1.0 (-) This is a multi-part message in MIME format. --------------SNeDiYrfyP5m27xg9nHg0t34 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable On 2025-04-05 13:56, P=C3=A1draig Brady wrote: > I'm going to apply the attached later to remove the libm dependency. > It's just too much of a dependency for minimal functionality. Thanks, agreed about the dependency. Still, 'timeout' (and, now that I=20 think about it, 'sleep' and 'tail') should always wait for at least the=20 time requested. After thinking about it I installed the attached further patch, which=20 addresses the problem in a different way without needing libm on=20 GNU/Linux. Although we could tighten the bounds further in typical cases=20 (by using the algorithm 'date' uses to parse seconds, if the string is=20 of that form) I tried to keep it simple, as the main point is to not=20 sleep for less than the time requested. Floating point can be such a pain sometimes, even for simple things.=20 (Read the cited paper and see....) --------------SNeDiYrfyP5m27xg9nHg0t34 Content-Type: text/x-patch; charset=UTF-8; name="0001-timeout-don-t-sleep-less-than-requested.patch" Content-Disposition: attachment; filename="0001-timeout-don-t-sleep-less-than-requested.patch" Content-Transfer-Encoding: base64 RnJvbSBjYjdjMjEwZDMwYzVhNmE0YTg3OWJkYTk2ZDYxOTI2ZDc3ZjE2ZDk2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBNb24sIDcgQXByIDIwMjUgMDA6MzA6MTQgLTA3MDAKU3ViamVjdDogW1BBVENI XSA9P1VURi04P3E/dGltZW91dDo9MjBkb249RTI9ODA9OTl0PTIwc2xlZXA9MjBsZXNzPTIw dGhhbj89CiA9P1VURi04P3E/PTIwcmVxdWVzdGVkPz0KTUlNRS1WZXJzaW9uOiAxLjAKQ29u dGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXIt RW5jb2Rpbmc6IDhiaXQKCkFsc28sIGNoYW5nZSBzbGVlcCBhbmQgdGFpbCB0byBub3Qgc2xl ZXAgbGVzcyB0aGFuIHJlcXVlc3RlZC4KKiBib290c3RyYXAuY29uZiAoZ251bGliX21vZHVs ZXMpOiBBZGQgZHRpbWVzcGVjLWJvdW5kLgoqIGdsL2xpYi9kdGltZXNwZWMtYm91bmQuYywg Z2wvbGliL2R0aW1lc3BlYy1ib3VuZC5oOgoqIGdsL21vZHVsZXMvZHRpbWVzcGVjLWJvdW5k OiBOZXcgZmlsZXMuCiogc3JjL3NsZWVwLmMsIHNyYy90YWlsLmMsIHNyYy90aW1lb3V0LmM6 IEluY2x1ZGUgZHRpbWVzcGVjLWJvdW5kLmguCiogc3JjL3NsZWVwLmMsIHNyYy90YWlsLmM6 IERvbuKAmXQgaW5jbHVkZSB4c3RydG9kLmguCiogc3JjL3NsZWVwLmMgKGFwcGx5X3N1ZmZp eCwgbWFpbik6Ciogc3JjL3RhaWwuYyAocGFyc2Vfb3B0aW9ucyk6Ciogc3JjL3RpbWVvdXQu YyAoYXBwbHlfdGltZV9zdWZmaXgpOgpEb27igJl0IHNsZWVwIGxlc3MgdGhhbiB0aGUgdHJ1 ZSBudW1iZXIgb2Ygc2Vjb25kcy4KKiBzcmMvdGltZW91dC5jOiBEb27igJl0IGluY2x1ZGUg Y3R5cGUuaC4KKGlzX25lZ2F0aXZlKTogUmVtb3ZlOyBubyBsb25nZXIgbmVlZGVkLgoocGFy c2VfZHVyYXRpb24pOiBVc2UgYSBzbGlnaHRseSBsb29zZXIgYm91bmQgb24gdGhlIHRpbWVv dXQsIG9uZQp0aGF0IGRvZXNu4oCZdCBuZWVkIC1sbSBvbiBHTlUvTGludXguICBDbGVhciBl cnJubyBiZWZvcmUgY2FsbGluZwpjbF9zdHJ0b2QuCi0tLQogTkVXUyAgICAgICAgICAgICAg ICAgICAgICAgfCAgNCArKwogYm9vdHN0cmFwLmNvbmYgICAgICAgICAgICAgfCAgMSArCiBn bC9saWIvZHRpbWVzcGVjLWJvdW5kLmMgICB8ICAzICsrCiBnbC9saWIvZHRpbWVzcGVjLWJv dW5kLmggICB8IDc2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBn bC9tb2R1bGVzL2R0aW1lc3BlYy1ib3VuZCB8IDI0ICsrKysrKysrKysrKwogc3JjL3NsZWVw LmMgICAgICAgICAgICAgICAgfCAxNCArKysrLS0tCiBzcmMvdGFpbC5jICAgICAgICAgICAg ICAgICB8IDEwICsrKy0tCiBzcmMvdGltZW91dC5jICAgICAgICAgICAgICB8IDI5ICsrKyst LS0tLS0tLS0tLQogOCBmaWxlcyBjaGFuZ2VkLCAxMjkgaW5zZXJ0aW9ucygrKSwgMzIgZGVs ZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2wvbGliL2R0aW1lc3BlYy1ib3VuZC5j CiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2wvbGliL2R0aW1lc3BlYy1ib3VuZC5oCiBjcmVhdGUg bW9kZSAxMDA2NDQgZ2wvbW9kdWxlcy9kdGltZXNwZWMtYm91bmQKCmRpZmYgLS1naXQgYS9O RVdTIGIvTkVXUwppbmRleCBiNDU1OWNlZmMuLmQ0MzZmOWFjZiAxMDA2NDQKLS0tIGEvTkVX UworKysgYi9ORVdTCkBAIC0yNyw2ICsyNywxMCBAQCBHTlUgY29yZXV0aWxzIE5FV1MgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKi0gb3V0bGluZSAtKi0KICAgRm9y IGV4YW1wbGUgYHRpbWVvdXQgMWUtNTAwMCBzbGVlcCBpbmZgIHdvdWxkIG5ldmVyIHRpbWVv dXQuCiAgIFtidWcgaW50cm9kdWNlZCB3aXRoIHRpbWVvdXQgaW4gY29yZXV0aWxzLTcuMF0K IAorICBzbGVlcCwgdGFpbCwgYW5kIHRpbWVvdXQgd291bGQgc29tZXRpbWVzIHNsZWVwIGZv ciBzbGlnaHRseSBsZXNzCisgIHRpbWUgdGhhbiByZXF1ZXN0ZWQuCisgIFtidWcgaW50cm9k dWNlZCBpbiBjb3JldXRpbHMtNS4wXQorCiAgICd3aG8gLW0nIG5vdyBvdXRwdXRzIGVudHJp ZXMgZm9yIHJlbW90ZSBsb2dpbnMuICBQcmV2aW91c2x5IGxvZ2luCiAgIGVudHJpZXMgcHJl Zml4ZWQgd2l0aCB0aGUgc2VydmljZSAobGlrZSAic3NoZCIpIHdlcmUgbm90IG1hdGNoZWQu CiAgIFtidWcgaW50cm9kdWNlZCBpbiBjb3JldXRpbHMtOS40XQpkaWZmIC0tZ2l0IGEvYm9v dHN0cmFwLmNvbmYgYi9ib290c3RyYXAuY29uZgppbmRleCBjOTk4MzhlOTUuLjk0YzE2NGUx MCAxMDA2NDQKLS0tIGEvYm9vdHN0cmFwLmNvbmYKKysrIGIvYm9vdHN0cmFwLmNvbmYKQEAg LTc4LDYgKzc4LDcgQEAgZ251bGliX21vZHVsZXM9IgogICBkaXJmZAogICBkaXJuYW1lCiAg IGRvLXJlbGVhc2UtY29tbWl0LWFuZC10YWcKKyAgZHRpbWVzcGVjLWJvdW5kCiAgIGR0b2Fz dHIKICAgZHVwMgogICBlbmRpYW4KZGlmZiAtLWdpdCBhL2dsL2xpYi9kdGltZXNwZWMtYm91 bmQuYyBiL2dsL2xpYi9kdGltZXNwZWMtYm91bmQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAuLjhjYjc2MDhmZQotLS0gL2Rldi9udWxsCisrKyBiL2dsL2xpYi9k dGltZXNwZWMtYm91bmQuYwpAQCAtMCwwICsxLDMgQEAKKyNpbmNsdWRlIDxjb25maWcuaD4K KyNkZWZpbmUgRFRJTUVTUEVDX0JPVU5EX0lOTElORSBfR0xfRVhURVJOX0lOTElORQorI2lu Y2x1ZGUgImR0aW1lc3BlYy1ib3VuZC5oIgpkaWZmIC0tZ2l0IGEvZ2wvbGliL2R0aW1lc3Bl Yy1ib3VuZC5oIGIvZ2wvbGliL2R0aW1lc3BlYy1ib3VuZC5oCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMC4uNDk0NzE0NTc0Ci0tLSAvZGV2L251bGwKKysrIGIvZ2wv bGliL2R0aW1lc3BlYy1ib3VuZC5oCkBAIC0wLDAgKzEsNzYgQEAKKy8qIENvbXB1dGUgYSB0 aW1lc3BlYy1yZWxhdGVkIGJvdW5kIGZvciBmbG9hdGluZyBwb2ludC4KKworICAgQ29weXJp Z2h0IDIwMjUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisKKyAgIFRoaXMgcHJv Z3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3Ig bW9kaWZ5CisgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKyAgIChhdCB5b3Vy IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgYnV0IFdJ VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg b2YKKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS UE9TRS4gIFNlZSB0aGUKKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl IGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3Jh bS4gIElmIG5vdCwgc2VlIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLwor CisvKiB3cml0dGVuIGJ5IFBhdWwgRWdnZXJ0ICovCisKKyNpZm5kZWYgRFRJTUVTUEVDX0JP VU5EX0gKKyNkZWZpbmUgRFRJTUVTUEVDX0JPVU5EX0ggMQorCisvKiBUaGlzIGZpbGUgdXNl cyBfR0xfSU5MSU5FX0hFQURFUl9CRUdJTiwgX0dMX0lOTElORS4gICovCisjaWYgIV9HTF9D T05GSUdfSF9JTkNMVURFRAorICNlcnJvciAiUGxlYXNlIGluY2x1ZGUgY29uZmlnLmggZmly c3QuIgorI2VuZGlmCisKKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPGZsb2F0Lmg+ CisjaW5jbHVkZSA8bWF0aC5oPgorCitfR0xfSU5MSU5FX0hFQURFUl9CRUdJTgorI2lmbmRl ZiBEVElNRVNQRUNfQk9VTkRfSU5MSU5FCisjIGRlZmluZSBEVElNRVNQRUNfQk9VTkRfSU5M SU5FIF9HTF9JTkxJTkUKKyNlbmRpZgorCisvKiBJZiBDIGlzIHBvc2l0aXZlIGFuZCBmaW5p dGUsIHJldHVybiB0aGUgbGVhc3QgZmxvYXRpbmcgcG9pbnQgdmFsdWUKKyAgIGdyZWF0ZXIg dGhhbiBDLiAgSG93ZXZlciwgaWYgMCA8IEMgPCAoMiAqIERCTF9UUlVFX01JTikgLyAoREJM X0VQU0lMT04qKjIpLAorICAgcmV0dXJuIGEgcG9zaXRpdmUgdmFsdWUgbGVzcyB0aGFuIDFl LTkuCisKKyAgIElmIEMgaXMgKzAuMCwgcmV0dXJuIGEgcG9zaXRpdmUgdmFsdWUgPCAxZS05 IGlmIEVSUiA9PSBFUkFOR0UsIEMgb3RoZXJ3aXNlLgorICAgSWYgQyBpcyArSW5mLCByZXR1 cm4gQy4KKyAgIElmIEMgaXMgbmVnYXRpdmUsIHJldHVybiAtdGltZXNwZWNfcm91bmR1cCgt QykuCisgICBJZiBDIGlzIGEgTmFOLCByZXR1cm4gYSBOYU4uCisKKyAgIEFzc3VtZSByb3Vu ZC10by1ldmVuLgorCisgICBUaGlzIGZ1bmN0aW9uIGNhbiBiZSB1c2VmdWwgaWYgc29tZSBm bG9hdGluZyBwb2ludCBvcGVyYXRpb24KKyAgIHJvdW5kZWQgdG8gQyBidXQgd2Ugd2FudCBh IG5lYXJieSBib3VuZCBvbiB0aGUgdHJ1ZSB2YWx1ZSwgd2hlcmUKKyAgIHRoZSBib3VuZCBj YW4gYmUgY29udmVydGVkIHRvIHN0cnVjdCB0aW1lc3BlYy4gIElmIHRoZSBvcGVyYXRpb24K KyAgIHVuZGVyZmxvd2VkIHRvIHplcm8sIEVSUiBzaG91bGQgYmUgRVJBTkdFIGEgbGEgc3Ry dG9kLiAgKi8KKworRFRJTUVTUEVDX0JPVU5EX0lOTElORSBkb3VibGUKK2R0aW1lc3BlY19i b3VuZCAoZG91YmxlIGMsIGludCBlcnIpCit7CisgIC8qIERvIG5vdCB1c2UgY29weXNpZ24g b3IgbmV4dGFmdGVyLCBhcyB0aGV5IGxpbmsgdG8gLWxtIGluIEdOVS9MaW51eC4gICovCisK KyAgLyogVXNlIERCTF9UUlVFX01JTiBmb3IgdGhlIHNwZWNpYWwgY2FzZSBvZiB1bmRlcmZs b3dpbmcgdG8gemVybzsKKyAgICAgYW55IHBvc2l0aXZlIHZhbHVlIGxlc3MgdGhhbiAxZS05 IHdpbGwgZG8uICAqLworICBpZiAoZXJyID09IEVSQU5HRSAmJiBjID09IDApCisgICAgcmV0 dXJuIHNpZ25iaXQgKGMpID8gLURCTF9UUlVFX01JTiA6IERCTF9UUlVFX01JTjsKKworICAv KiBUaGlzIGlzIHRoZSBmaXJzdCBwYXJ0IG9mIEFsZ29yaXRobSAyIG9mOgorICAgICBSdW1w IFNNLCBaaW1tZXJtYW5uIFAsIEJvbGRvIFMsIE1lbHF1aW9uZCBHLgorICAgICBDb21wdXRp bmcgcHJlZGVjZXNzb3IgYW5kIHN1Y2Nlc3NvciBpbiByb3VuZGluZyB0byBuZWFyZXN0Lgor ICAgICBCSVQgTnVtZXIgTWF0aC4gMjAwOTs0OSg0MTktNDMxKS4KKyAgICAgPGh0dHBzOi8v ZG9pLm9yZy8xMC4xMDA3L3MxMDU0My0wMDktMDIxOC16PgorICAgICBUaGUgcmVzdCBvZiBB bGdvcml0aG0gMiBpcyBub3QgbmVlZGVkIGJlY2F1c2UgbnVtYmVycyBsZXNzIHRoYW4KKyAg ICAgdGhlIHByZWRlY2Vzc29yIG9mIDFlLTkgbWVyZWx5IG5lZWQgdG8gc3RheSBsZXNzIHRo YW4gMWUtOS4gICovCisgIGRvdWJsZSBwaGkgPSBEQkxfRVBTSUxPTiAvIDIgKiAoMSArIERC TF9FUFNJTE9OKTsKKyAgcmV0dXJuIGMgKyBwaGkgKiBjOworfQorCitfR0xfSU5MSU5FX0hF QURFUl9FTkQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9nbC9tb2R1bGVzL2R0aW1lc3BlYy1i b3VuZCBiL2dsL21vZHVsZXMvZHRpbWVzcGVjLWJvdW5kCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMC4uNzM2YzZkYWJkCi0tLSAvZGV2L251bGwKKysrIGIvZ2wvbW9k dWxlcy9kdGltZXNwZWMtYm91bmQKQEAgLTAsMCArMSwyNCBAQAorRGVzY3JpcHRpb246CitB ZGp1c3QgYSBkb3VibGUgdG8gcHJvdmlkZSBhIHRpbWVzcGVjIGJvdW5kLgorCitGaWxlczoK K2xpYi9kdGltZXNwZWMtYm91bmQuYworbGliL2R0aW1lc3BlYy1ib3VuZC5oCisKK0RlcGVu ZHMtb246CitmbG9hdC1oCitzaWduYml0CisKK2NvbmZpZ3VyZS5hYzoKKworTWFrZWZpbGUu YW06CitsaWJfU09VUkNFUyArPSBkdGltZXNwZWMtYm91bmQuYworCitJbmNsdWRlOgorImR0 aW1lc3BlYy1ib3VuZC5oIgorCitMaWNlbnNlOgorR1BMCisKK01haW50YWluZXI6CithbGwK ZGlmZiAtLWdpdCBhL3NyYy9zbGVlcC5jIGIvc3JjL3NsZWVwLmMKaW5kZXggNTg3MTUxN2Rl Li4xM2M2OGE2MDYgMTAwNjQ0Ci0tLSBhL3NyYy9zbGVlcC5jCisrKyBiL3NyYy9zbGVlcC5j CkBAIC0yMCwxMCArMjAsMTAgQEAKIAogI2luY2x1ZGUgInN5c3RlbS5oIgogI2luY2x1ZGUg ImNsLXN0cnRvZC5oIgorI2luY2x1ZGUgImR0aW1lc3BlYy1ib3VuZC5oIgogI2luY2x1ZGUg Imxvbmctb3B0aW9ucy5oIgogI2luY2x1ZGUgInF1b3RlLmgiCiAjaW5jbHVkZSAieG5hbm9z bGVlcC5oIgotI2luY2x1ZGUgInhzdHJ0b2QuaCIKIAogLyogVGhlIG9mZmljaWFsIG5hbWUg b2YgdGhpcyBwcm9ncmFtIChlLmcuLCBubyAnZycgcHJlZml4KS4gICovCiAjZGVmaW5lIFBS T0dSQU1fTkFNRSAic2xlZXAiCkBAIC04NSw3ICs4NSw3IEBAIGFwcGx5X3N1ZmZpeCAoZG91 YmxlICp4LCBjaGFyIHN1ZmZpeF9jaGFyKQogICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0K IAotICAqeCAqPSBtdWx0aXBsaWVyOworICAqeCA9IGR0aW1lc3BlY19ib3VuZCAoKnggKiBt dWx0aXBsaWVyLCAwKTsKIAogICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTExNiw5ICsxMTYsMTEg QEAgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCiAgIGZvciAoaW50IGkgPSBvcHRp bmQ7IGkgPCBhcmdjOyBpKyspCiAgICAgewotICAgICAgZG91YmxlIHM7Ci0gICAgICBjaGFy IGNvbnN0ICpwOwotICAgICAgaWYgKCEgKHhzdHJ0b2QgKGFyZ3ZbaV0sICZwLCAmcywgY2xf c3RydG9kKSB8fCBlcnJubyA9PSBFUkFOR0UpCisgICAgICBjaGFyICpwOworICAgICAgZXJy bm8gPSAwOworICAgICAgZG91YmxlIGR1cmF0aW9uID0gY2xfc3RydG9kIChhcmd2W2ldLCAm cCk7CisgICAgICBkb3VibGUgcyA9IGR0aW1lc3BlY19ib3VuZCAoZHVyYXRpb24sIGVycm5v KTsKKyAgICAgIGlmIChhcmd2W2ldID09IHAKICAgICAgICAgICAvKiBOb25uZWdhdGl2ZSBp bnRlcnZhbC4gICovCiAgICAgICAgICAgfHwgISAoMCA8PSBzKQogICAgICAgICAgIC8qIE5v IGV4dHJhIGNoYXJzIGFmdGVyIHRoZSBudW1iZXIgYW5kIGFuIG9wdGlvbmFsIHMsbSxoLGQg Y2hhci4gICovCkBAIC0xMzAsNyArMTMyLDcgQEAgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiph cmd2KQogICAgICAgICAgIG9rID0gZmFsc2U7CiAgICAgICAgIH0KIAotICAgICAgc2Vjb25k cyArPSBzOworICAgICAgc2Vjb25kcyA9IGR0aW1lc3BlY19ib3VuZCAoc2Vjb25kcyArIHMs IDApOwogICAgIH0KIAogICBpZiAoIW9rKQpkaWZmIC0tZ2l0IGEvc3JjL3RhaWwuYyBiL3Ny Yy90YWlsLmMKaW5kZXggMWVkMWM0ZmFiLi5hYzY2YzlhYTUgMTAwNjQ0Ci0tLSBhL3NyYy90 YWlsLmMKKysrIGIvc3JjL3RhaWwuYwpAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgImFz c3VyZS5oIgogI2luY2x1ZGUgImMtY3R5cGUuaCIKICNpbmNsdWRlICJjbC1zdHJ0b2QuaCIK KyNpbmNsdWRlICJkdGltZXNwZWMtYm91bmQuaCIKICNpbmNsdWRlICJmY250bC0tLmgiCiAj aW5jbHVkZSAiaW9wb2xsLmgiCiAjaW5jbHVkZSAiaXNhcGlwZS5oIgpAQCAtNDcsNyArNDgs NiBAQAogI2luY2x1ZGUgInhkZWN0b2ludC5oIgogI2luY2x1ZGUgInhuYW5vc2xlZXAuaCIK ICNpbmNsdWRlICJ4c3RydG9sLmgiCi0jaW5jbHVkZSAieHN0cnRvZC5oIgogCiAjaWYgSEFW RV9JTk9USUZZCiAjIGluY2x1ZGUgImhhc2guaCIKQEAgLTIyNzYsMTEgKzIyNzYsMTMgQEAg cGFyc2Vfb3B0aW9ucyAoaW50IGFyZ2MsIGNoYXIgKiphcmd2LAogCiAgICAgICAgIGNhc2Ug J3MnOgogICAgICAgICAgIHsKLSAgICAgICAgICAgIGRvdWJsZSBzOwotICAgICAgICAgICAg aWYgKCEgKHhzdHJ0b2QgKG9wdGFyZywgbnVsbHB0ciwgJnMsIGNsX3N0cnRvZCkgJiYgMCA8 PSBzKSkKKyAgICAgICAgICAgIGNoYXIgKmVwOworICAgICAgICAgICAgZXJybm8gPSAwOwor ICAgICAgICAgICAgZG91YmxlIHMgPSBjbF9zdHJ0b2QgKG9wdGFyZywgJmVwKTsKKyAgICAg ICAgICAgIGlmIChvcHRhcmcgPT0gZXAgfHwgKmVwIHx8ICEgKDAgPD0gcykpCiAgICAgICAg ICAgICAgIGVycm9yIChFWElUX0ZBSUxVUkUsIDAsCiAgICAgICAgICAgICAgICAgICAgICBf KCJpbnZhbGlkIG51bWJlciBvZiBzZWNvbmRzOiAlcyIpLCBxdW90ZSAob3B0YXJnKSk7Ci0g ICAgICAgICAgICAqc2xlZXBfaW50ZXJ2YWwgPSBzOworICAgICAgICAgICAgKnNsZWVwX2lu dGVydmFsID0gZHRpbWVzcGVjX2JvdW5kIChzLCBlcnJubyk7CiAgICAgICAgICAgfQogICAg ICAgICAgIGJyZWFrOwogCmRpZmYgLS1naXQgYS9zcmMvdGltZW91dC5jIGIvc3JjL3RpbWVv dXQuYwppbmRleCBmZThlYjQ1NTkuLmU4NjliMjUzMyAxMDA2NDQKLS0tIGEvc3JjL3RpbWVv dXQuYworKysgYi9zcmMvdGltZW91dC5jCkBAIC00NSw3ICs0NSw2IEBACiAgICBXcml0dGVu IGJ5IFDDoWRyYWlnIEJyYWR5LiAgKi8KIAogI2luY2x1ZGUgPGNvbmZpZy5oPgotI2luY2x1 ZGUgPGN0eXBlLmg+CiAjaW5jbHVkZSA8Z2V0b3B0Lmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4K ICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KQEAgLTU3LDYgKzU2LDcgQEAKIAogI2luY2x1ZGUg InN5c3RlbS5oIgogI2luY2x1ZGUgImNsLXN0cnRvZC5oIgorI2luY2x1ZGUgImR0aW1lc3Bl Yy1ib3VuZC5oIgogI2luY2x1ZGUgInNpZzJzdHIuaCIKICNpbmNsdWRlICJvcGVyYW5kMnNp Zy5oIgogI2luY2x1ZGUgInF1b3RlLmgiCkBAIC0zNDgsNDcgKzM0OCwzMiBAQCBhcHBseV90 aW1lX3N1ZmZpeCAoZG91YmxlICp4LCBjaGFyIHN1ZmZpeF9jaGFyKQogICAgICAgcmV0dXJu IGZhbHNlOwogICAgIH0KIAotICAqeCAqPSBtdWx0aXBsaWVyOworICAqeCA9IGR0aW1lc3Bl Y19ib3VuZCAoKnggKiBtdWx0aXBsaWVyLCAwKTsKIAogICByZXR1cm4gdHJ1ZTsKIH0KIAot QVRUUklCVVRFX1BVUkUgc3RhdGljIGJvb2wKLWlzX25lZ2F0aXZlIChjaGFyIGNvbnN0ICpu dW0pCi17Ci0gIHdoaWxlICgqbnVtICYmIGlzc3BhY2UgKHRvX3VjaGFyICgqbnVtKSkpCi0g ICAgbnVtKys7Ci0gIHJldHVybiAqbnVtID09ICctJzsKLX0KLQogc3RhdGljIGRvdWJsZQog cGFyc2VfZHVyYXRpb24gKGNoYXIgY29uc3QgKnN0cikKIHsKICAgY2hhciAqZXA7CisgIGVy cm5vID0gMDsKICAgZG91YmxlIGR1cmF0aW9uID0gY2xfc3RydG9kIChzdHIsICZlcCk7Cisg IGRvdWJsZSBzID0gZHRpbWVzcGVjX2JvdW5kIChkdXJhdGlvbiwgZXJybm8pOwogCiAgIGlm IChlcCA9PSBzdHIKICAgICAgIC8qIE5vbm5lZ2F0aXZlIGludGVydmFsLiAgKi8KLSAgICAg IHx8ICEgKDAgPD0gZHVyYXRpb24pCi0gICAgICAvKiBUaGUgaW50ZXJ2YWwgZGlkIG5vdCB1 bmRlcmZsb3cgdG8gLTAuICAqLwotICAgICAgfHwgKGVycm5vID09IEVSQU5HRSAmJiBpc19u ZWdhdGl2ZSAoc3RyKSkKKyAgICAgIHx8ICEgKDAgPD0gcykKICAgICAgIC8qIE5vIGV4dHJh IGNoYXJzIGFmdGVyIHRoZSBudW1iZXIgYW5kIGFuIG9wdGlvbmFsIHMsbSxoLGQgY2hhci4g ICovCiAgICAgICB8fCAoKmVwICYmICooZXAgKyAxKSkKICAgICAgIC8qIENoZWNrIGFueSBz dWZmaXggY2hhciBhbmQgdXBkYXRlIHRpbWVvdXQgYmFzZWQgb24gdGhlIHN1ZmZpeC4gICov Ci0gICAgICB8fCAhYXBwbHlfdGltZV9zdWZmaXggKCZkdXJhdGlvbiwgKmVwKSkKKyAgICAg IHx8ICFhcHBseV90aW1lX3N1ZmZpeCAoJnMsICplcCkpCiAgICAgewogICAgICAgZXJyb3Ig KDAsIDAsIF8oImludmFsaWQgdGltZSBpbnRlcnZhbCAlcyIpLCBxdW90ZSAoc3RyKSk7CiAg ICAgICB1c2FnZSAoRVhJVF9DQU5DRUxFRCk7CiAgICAgfQogCi0gIC8qIERvIG5vdCBsZXQg dGhlIGR1cmF0aW9uIHVuZGVyZmxvdyB0byAwLCBhcyAwIGRpc2FibGVzIHRoZSB0aW1lb3V0 LgotICAgICBVc2UgMioqLTMwIGluc3RlYWQgb2YgMDsgc2V0dGltZW91dCB3aWxsIHJvdW5k IGl0IHVwIHRvIDEgbnMsCi0gICAgIHdoZXJlYXMgMWUtOSBtaWdodCBkb3VibGUtcm91bmQg dG8gMiBucy4gICovCi0KLSAgaWYgKGR1cmF0aW9uID09IDAgJiYgZXJybm8gPT0gRVJBTkdF KQotICAgIGR1cmF0aW9uID0gOS4zMTMyMjU3NDYxNTQ3ODVlLTEwOwotCi0gIHJldHVybiBk dXJhdGlvbjsKKyAgcmV0dXJuIHM7CiB9CiAKIHN0YXRpYyB2b2lkCi0tIAoyLjQ1LjIKCg== --------------SNeDiYrfyP5m27xg9nHg0t34-- From debbugs-submit-bounces@debbugs.gnu.org Mon Apr 07 04:23:55 2025 Received: (at 77535) by debbugs.gnu.org; 7 Apr 2025 08:23:55 +0000 Received: from localhost ([127.0.0.1]:52390 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u1hlr-0008QZ-JZ for submit@debbugs.gnu.org; Mon, 07 Apr 2025 04:23:55 -0400 Received: from mail.cs.ucla.edu ([131.179.128.66]:59380) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1u1hlp-0008PL-EN for 77535@debbugs.gnu.org; Mon, 07 Apr 2025 04:23:54 -0400 Received: from localhost (localhost [127.0.0.1]) by mail.cs.ucla.edu (Postfix) with ESMTP id E2F7A3C01086E; Mon, 7 Apr 2025 01:23:46 -0700 (PDT) Received: from mail.cs.ucla.edu ([127.0.0.1]) by localhost (mail.cs.ucla.edu [127.0.0.1]) (amavis, port 10032) with ESMTP id fGXa93-DdNhr; Mon, 7 Apr 2025 01:23:46 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by mail.cs.ucla.edu (Postfix) with ESMTP id 9FC8A3C010870; Mon, 7 Apr 2025 01:23:46 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.10.3 mail.cs.ucla.edu 9FC8A3C010870 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cs.ucla.edu; s=9D0B346E-2AEB-11ED-9476-E14B719DCE6C; t=1744014226; bh=MdFxLrTOQJqZmdv+3KaQCMr4OeJTTN7xHN8Q4S5q2JI=; h=Message-ID:Date:MIME-Version:To:From; b=mqlOrX0iGkjzzU872wq0RVlQcL3eyXhP+8iYtwtnb/4cJ4QVcAM5DK3+ps4FTQIkM +90b/xfp24Ft9Me84E/nKdVO1njNbX11MCQXnZeV+wPRB3TAFbelpAHTYS/ndHTGaU 1KF57bnJrG3tLaD7z+mkDJZ9D+zPeuRfxeVoj07IjjkIwkXfEU+GV8FoJwy55//8Pq bU3cXXQXNjRYsxsMOosQ/L6tdi1FGoHWUij1J4VnsS5CW8OEGsT4L+B9ta98AJRycd HO7DL29pNllsRwvI4I0zIODdzW41+9fd9oQqS1/8Tv1xjQ5BAC6BPlOctuPP8FFvlc OpzIFfqq9qb/A== X-Virus-Scanned: amavis at mail.cs.ucla.edu Received: from mail.cs.ucla.edu ([127.0.0.1]) by localhost (mail.cs.ucla.edu [127.0.0.1]) (amavis, port 10026) with ESMTP id jiNchnM4d5Lt; Mon, 7 Apr 2025 01:23:46 -0700 (PDT) Received: from [192.168.254.12] (47-147-225-25.fdr01.snmn.ca.ip.frontiernet.net [47.147.225.25]) by mail.cs.ucla.edu (Postfix) with ESMTPSA id 837FF3C01086E; Mon, 7 Apr 2025 01:23:46 -0700 (PDT) Message-ID: <140e2203-bfe0-4249-aea9-68519cebc8aa@cs.ucla.edu> Date: Mon, 7 Apr 2025 01:23:46 -0700 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: bug#77535: timeout treats very short durations as `0` To: =?UTF-8?Q?P=C3=A1draig_Brady?= References: <4ee5b797-d038-4392-8c43-d3321903f38e@cs.ucla.edu> <6f86f5d8-8f67-4315-98b7-b0e43c0796bd@app.fastmail.com> <0f2b5197-1aab-4b62-890d-91cf3a3e9013@draigBrady.com> Content-Language: en-US From: Paul Eggert Organization: UCLA Computer Science Department In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77535 Cc: 77535@debbugs.gnu.org, nicolas@boichat.ch, Philip Rowlands 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: -1.0 (-) On 2025-04-05 12:41, P=C3=A1draig Brady wrote: > +Note it's best to avoid combining suffixes with hexadecimal arguments, > +as any @samp{d} will @emph{not} be interpreted as a suffix. But 'd' is interpreted as a suffix with hexadecimal arguments that have=20 an exponent. For example, 'sleep 0x1p0d' sleeps for 1 day. (Also, "Note"=20 isn't needed.) Perhaps change to: A hexadecimal number can precede a @samp{d} suffix only if the number=20 has a @samp{p} style exponent, e.g., @samp{0x1p0d} means one day. From debbugs-submit-bounces@debbugs.gnu.org Mon Apr 07 13:45:35 2025 Received: (at 77535) by debbugs.gnu.org; 7 Apr 2025 17:45:35 +0000 Received: from localhost ([127.0.0.1]:56760 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u1qXP-0001Ol-7t for submit@debbugs.gnu.org; Mon, 07 Apr 2025 13:45:35 -0400 Received: from mail-wr1-x42a.google.com ([2a00:1450:4864:20::42a]:52430) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1u1qXM-0001Mg-6q for 77535@debbugs.gnu.org; Mon, 07 Apr 2025 13:45:32 -0400 Received: by mail-wr1-x42a.google.com with SMTP id ffacd0b85a97d-39c1ee0fd43so3958482f8f.0 for <77535@debbugs.gnu.org>; Mon, 07 Apr 2025 10:45:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744047926; x=1744652726; darn=debbugs.gnu.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :sender:from:to:cc:subject:date:message-id:reply-to; bh=BhX4+zYRVChD+k9hctVQ40YDObVqXSBM4zpNafwUIMo=; b=cfy0mTI2Prm92sAFjy4ixvmbIaOuYm4FNpnM/9KK4N4T3bKGkLNfpQxFL7nIIy9MRd 2yZ/J/Rt9SWxF3jzDQG89UceLJLg576RAdfCDx6cEFd93JyzGfan8Rqwz2DPSXsrLAzD eHz1Q4Te1DbXCtg3TWuoHafUyn8FHKuRO6j7VLsPnvvUhhfLtIhtzcSoPGQm8R1ArNRb kylL7tNMwLB9O1paL1Lsa9haqoFjoEA7jRi+DShkY1KevfaJWkxYKGEgn/do/a+HPE1R P3s22YM8J9/otS9cDOw4bVmr+h3MtYwpGh8Niv2VL2wn2KEYO7Yoee1tWPlBlr839MtY v88A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744047926; x=1744652726; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :sender:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=BhX4+zYRVChD+k9hctVQ40YDObVqXSBM4zpNafwUIMo=; b=FMwLvB1HPheUoQa7WBBBcuxilmW9u/FQkrQU84fqt2WSGawUQj/ktTF0exlaWkm48w N2uheMV1OQBQ9KbCLi6jifu0HfPGFMQ0S9/KJmJBMAZ7p6AlOmWXEbi9u0PjLVCzChI2 jiuiAtXH9jOCcw/Aa51DZAcvaEQ1beyTwjSNcbKUGKmohP3HOXIveIYKxduPfQnRmrZN kqO8yEzk69t3qmiK7zS1FqCN0tzUDRmIYJiIgs+XjsNXV9J+0q0fpQwUZfsrcpn+JBIi eXfyusa/SOjDtwX9utfgckVMqP0uVrFC9O826oFokVULdPMb6lZNZVmJvjknB3cM5706 exTQ== X-Forwarded-Encrypted: i=1; AJvYcCXi1Fed8aKS2NTmE4nLxYZ5UCZZyeM1LW4VSM60nN58ZphaxBoT5pkZIuU8W6xSwk0xBB7eUA==@debbugs.gnu.org X-Gm-Message-State: AOJu0YzUGek3vPck6NyWPDKTHmzOXPv4nHUvkwl9oAl4Zq8+a/9bG+0h kJVrQXPCyGaBC+7p0MQdgVDuf9lwGHnBX+tHTJhFU/IWsGiDv2Vw X-Gm-Gg: ASbGncter/S3QLTGU5HWfeLkpYzB9E2Lf0CLSXH6d769X6sqxRYdF+2pWc54Uqkx0Qv D8kRcP5J8SUV2sSKhDSyBSOHAjCrO/EzV96kiAK8IqlGZNV+q1M5Lds2GlJTtpbhdS/u6sxuUtB ltl5ly157t8LA2n5h1+CdPUnmqQhSbea5tWq5R3LtYhN8ptQMwqotrgdZR5S2NpC7+OXnTV1YxA yqjqGdtT/OF7yb+UuqJEFFv8jzzpC1cjeRE2SbuTR0h2/z1ZK79dSD0AW9nd5DzjGP9L9Vr4T/l 4ZLHzPtPKduxFcMLjkMKD4lPiK40Id/8qYRA12yFljSgfwhvH681+/fW7F/soZ4VBLMpD3ZURyb 32QtKMLT9o1jAAjIw9T0pd+ia X-Google-Smtp-Source: AGHT+IGpP6pyvsxVzHXsAyZAz/pH5mTchP+Qu4e4CHV61oPFuHaBLggV0NZBu5oXEljEyJ774wzvrw== X-Received: by 2002:a05:6000:40cb:b0:39c:266c:400a with SMTP id ffacd0b85a97d-39cba98b9ddmr11223676f8f.50.1744047925715; Mon, 07 Apr 2025 10:45:25 -0700 (PDT) Received: from [192.168.1.18] (86-44-211-146-dynamic.agg2.lod.rsl-rtd.eircom.net. [86.44.211.146]) by smtp.googlemail.com with ESMTPSA id 5b1f17b1804b1-43ea8d1673dsm156981975e9.0.2025.04.07.10.45.23 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 07 Apr 2025 10:45:25 -0700 (PDT) Message-ID: Date: Mon, 7 Apr 2025 18:45:22 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Beta Subject: Re: bug#77535: timeout treats very short durations as `0` To: Paul Eggert References: <4ee5b797-d038-4392-8c43-d3321903f38e@cs.ucla.edu> <6f86f5d8-8f67-4315-98b7-b0e43c0796bd@app.fastmail.com> <0f2b5197-1aab-4b62-890d-91cf3a3e9013@draigBrady.com> <140e2203-bfe0-4249-aea9-68519cebc8aa@cs.ucla.edu> Content-Language: en-US From: =?UTF-8?Q?P=C3=A1draig_Brady?= In-Reply-To: <140e2203-bfe0-4249-aea9-68519cebc8aa@cs.ucla.edu> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77535 Cc: 77535@debbugs.gnu.org, nicolas@boichat.ch, Philip Rowlands 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: -1.0 (-) On 07/04/2025 09:23, Paul Eggert wrote: > On 2025-04-05 12:41, Pádraig Brady wrote: >> +Note it's best to avoid combining suffixes with hexadecimal arguments, >> +as any @samp{d} will @emph{not} be interpreted as a suffix. > > But 'd' is interpreted as a suffix with hexadecimal arguments that have > an exponent. For example, 'sleep 0x1p0d' sleeps for 1 day. (Also, "Note" > isn't needed.) Perhaps change to: > > A hexadecimal number can precede a @samp{d} suffix only if the number > has a @samp{p} style exponent, e.g., @samp{0x1p0d} means one day. Cool, It's better to document a workaround than a restriction. I pushed the above adjustment in your name. cheers, Pádraig From debbugs-submit-bounces@debbugs.gnu.org Mon Apr 07 13:46:42 2025 Received: (at 77535) by debbugs.gnu.org; 7 Apr 2025 17:46:42 +0000 Received: from localhost ([127.0.0.1]:56779 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u1qYT-0001UC-Su for submit@debbugs.gnu.org; Mon, 07 Apr 2025 13:46:42 -0400 Received: from mail-wm1-x329.google.com ([2a00:1450:4864:20::329]:46436) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1u1qYR-0001Tf-Vg for 77535@debbugs.gnu.org; Mon, 07 Apr 2025 13:46:40 -0400 Received: by mail-wm1-x329.google.com with SMTP id 5b1f17b1804b1-43ea40a6e98so41126895e9.1 for <77535@debbugs.gnu.org>; Mon, 07 Apr 2025 10:46:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744047994; x=1744652794; darn=debbugs.gnu.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :sender:from:to:cc:subject:date:message-id:reply-to; bh=aZUEnA0xRUcEjIAxaLsT0AxFRKTkqFhbILKwTLUDPuI=; b=HR91qF+XYHeRYfktHIOqu7wLceDtMAmGEU55A0KhVlF5PwA/hII3wf0u/CHyaMwXl5 3b+JF2zZecsvvRy9olFSV2uCJe5CpoqkR2GO3Ng+s1b4WAcaDGgaIprLfRX22Hm71dwF p3LErToArSKhO6KBtYe7hkE+5UoVYKRAWg2JXjHtX2kpgiAq+TXXeiD5F3PxxHgyplli VPGRNnRVxeZRMxEdEMKYvRMoI2AGo9035uGcD+nCi4pmUc57TGbL8eBUJNMq1b9NTots ShP45A1oxxhNS2KESg/2WrcGUSFNLkCPM65ycL+7E9wCZaBmjObqh3OdFl0JEik/9hpH zx4Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744047994; x=1744652794; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :sender:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=aZUEnA0xRUcEjIAxaLsT0AxFRKTkqFhbILKwTLUDPuI=; b=MbqiNmASLxQ56wA03fhsBczAbHz/8QhP1KmuY52/aBR9r4DjIKuE1Z/oenfsfSc7Bm hUYxA0MmOXWjsF33I+3wrLwQ52kOTzwsHUgrUF+7aSIMZShGf5dW0j41XI5jg59BHwh0 oc/fVFCuOCn2Wxzz7P0T9o5JctxJajjsujNhDpQ15TWFLDVpVixC0ErAdgBdBF82wCfU yfShHHiFQ9ZvJCivVuhEK0ZeLmNZamMdD2o3HatW+VZdQ2g4tj+bJjQhpBVbpxIEEXGw 3FaKydnJkkYcYe0YsVI5kB+2UX0+nDg1oPUNKS2wUZNZ3rAOgIYIMis+lwTaK9WtsU2X 8sKg== X-Gm-Message-State: AOJu0Yw2nd6w2Uo/O+JFnRoIzAKxWkckS/qEobg1VkPTBEDHLkSsntkV CpWMFAksYNRcY9UCVb46K3wuIu55VwqNFOEIR+ZgnpFnbnmdjiZd X-Gm-Gg: ASbGncu0e9wSccPE6qkNfnw0cJSZDPjO8ZTxhaus0ROfFC6FfscJXabAC7oE+tkmL1z DJN7jbEZ33AXSgToIGL7fa11Qb3zvm9Wh7HaVuW0CLpZPsvZCYRyNixnlY/eIYat+SlG3oLySpe dqM602CG4+EjlDtd1EHqc56se+gpveg0/X+OCAYAJDfNiXETV2+d2PqReiTIRlrvwxuUshDvmnN UxRwbXjCm1mfSkzgD6c7fQmZbUJofcXKZP5ZzMihFOFaMGRsXeWT+Sjt3VRrizipb9bvnfBQvwp ZxI+jJpNS3mwf1scLIfIETJMl6qddJn2EsQYtHlLA+oociMHEoN8NBooJ8l+DA1weBhIAVdVpT2 FKxFP/jAEDSbUdqYxz2Nglos0 X-Google-Smtp-Source: AGHT+IFGGgquSHhhXt4eN8QG5bn5V4uze5pn+y/NlttqnC1cAf0z7+prl12v+kSGHLaxQABZty7WdQ== X-Received: by 2002:a05:6000:4283:b0:39c:2688:4ebf with SMTP id ffacd0b85a97d-39d6fc0c414mr7377240f8f.6.1744047993607; Mon, 07 Apr 2025 10:46:33 -0700 (PDT) Received: from [192.168.1.18] (86-44-211-146-dynamic.agg2.lod.rsl-rtd.eircom.net. [86.44.211.146]) by smtp.googlemail.com with ESMTPSA id ffacd0b85a97d-39c3020da49sm12503126f8f.80.2025.04.07.10.46.32 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 07 Apr 2025 10:46:33 -0700 (PDT) Message-ID: <12186cfd-04f9-4846-92cb-51b88843cd05@draigBrady.com> Date: Mon, 7 Apr 2025 18:46:31 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Beta Subject: Re: bug#77535: timeout treats very short durations as `0` To: Paul Eggert References: <4ee5b797-d038-4392-8c43-d3321903f38e@cs.ucla.edu> <56f1d3a8-d83d-462a-9494-35380341ae29@draigBrady.com> <1146f177-9d5e-4d86-bf83-4d02b5d32f23@cs.ucla.edu> Content-Language: en-US From: =?UTF-8?Q?P=C3=A1draig_Brady?= In-Reply-To: <1146f177-9d5e-4d86-bf83-4d02b5d32f23@cs.ucla.edu> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77535 Cc: nicolas@boichat.ch, 77535@debbugs.gnu.org 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: -1.0 (-) On 07/04/2025 09:08, Paul Eggert wrote: > On 2025-04-05 13:56, Pádraig Brady wrote: >> I'm going to apply the attached later to remove the libm dependency. >> It's just too much of a dependency for minimal functionality. > > Thanks, agreed about the dependency. Still, 'timeout' (and, now that I > think about it, 'sleep' and 'tail') should always wait for at least the > time requested. > > After thinking about it I installed the attached further patch, which > addresses the problem in a different way without needing libm on > GNU/Linux. Although we could tighten the bounds further in typical cases > (by using the algorithm 'date' uses to parse seconds, if the string is > of that form) I tried to keep it simple, as the main point is to not > sleep for less than the time requested. > > Floating point can be such a pain sometimes, even for simple things. > (Read the cited paper and see....) Nice. I hadn't realized gnulib's signbit avoided the dependency on libm. thanks! Pádraig From unknown Thu Jun 19 16:24:23 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Tue, 06 May 2025 11:24:13 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator