From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.3 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 26862 invoked from network); 3 Dec 2023 18:02:45 -0000 Received: from zero.zsh.org (2a02:898:31:0:48:4558:7a:7368) by inbox.vuxu.org with ESMTPUTF8; 3 Dec 2023 18:02:45 -0000 ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20210803; t=1701626565; b=qp/bVo27wkgMRE1M4DW66YRz47tv9EhKfHmEnOmOc3Vk5h+Ff2BwxPDpnw991tq+HMKYZM8YWe vwAUHAU1heTgU/ZS8SlTc/M6k1YWNlJfjH444ciiHb8tUM/X9ngBOsXof5/gCG4kRcHJtL7r0N AzyBwoZOdAO2y6Ed9VtctCfNVvg2QqktSrGuU2KWyqNei6T1pWZ5Nz/htVRZ7x+V38LdQ3b9z6 u3DlSl+VyhheLrJY6+RjAJXpV6jYFejNyl5eMEe1hP36QPwrwf0pcT/RBuDn+M3UkRdyttTAC6 3RNN/A1a6Xk8gQlN0oOiOgZZ5LcyyATy8GfOtXhwypVnTA==; ARC-Authentication-Results: i=1; zsh.org; iprev=pass (mail-lj1-f180.google.com) smtp.remote-ip=209.85.208.180; dkim=pass header.d=brasslantern-com.20230601.gappssmtp.com header.s=20230601 header.a=rsa-sha256; dmarc=none header.from=brasslantern.com; arc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed; d=zsh.org; s=rsa-20210803; t=1701626565; bh=5uTn4ZEZAy0XhROyrOwx+Gt3020jAbVL6wlUS690K1U=; h=List-Archive:List-Owner:List-Post:List-Unsubscribe:List-Subscribe:List-Help: List-Id:Sender:Content-Type:To:Subject:Message-ID:Date:From:MIME-Version: DKIM-Signature:DKIM-Signature; b=o5AgN6uCI2szvNoJKyK9A5waqqj+UqO7hQi49/ZBzXjWmes8CvoFLvzit3IOmg1ANOmWoWkxzG GFQEhxQdkZVSuuaofc+iMJ5+nxjskWgYBzeuzv3ra07iV+nGIbtnQI/mW1ZFvxv2p3l4bysWO+ 7de3NQcn/pwx/NL+IRZtvhBwwB62WKgDZ3RORBIuE/k23Bon53LpSsF5EAXdpujRFaXjieeMZ/ wR+vZaKzSxxsh5eCJUMgrILlkU7tMPDYY6dZDAAG2Kx8Vfz/WclLGIWoB4T+I7BZ1DmQRFG+ca A0HmvPggpTq/1xfYDZiZvwSnVZeB1ZyV/i4fttj6AabWjQ==; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=zsh.org; s=rsa-20210803; h=List-Archive:List-Owner:List-Post:List-Unsubscribe: List-Subscribe:List-Help:List-Id:Sender:Content-Type:To:Subject:Message-ID: Date:From:MIME-Version:Reply-To:Cc:Content-Transfer-Encoding:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:In-Reply-To:References; bh=j2OJjK7Qg+aVH5uSwHQCROox1Hk7xzeYJF4TeXvw9yo=; b=JwhJVYTaQesfpCrCWkJFQjbAP+ y1o+lr1xUmTE1+BGAbKfJv/Kr79t9UFsikgp4wHIJo5aeLpeEufXH9BrkiNZ8Asv+53l+hAIt2RC+ nA2aq3PPuye9+F7kKlkjmDq4xTzOGtgZywhrk3Y4tAC34O+Sn1d9gfFjYv3yEHlSBRvz5QrKEcUR5 QS+1ajdcU/wYlBn5uexds74apkSoSA3xbaE+orPGXvC45jCwOz0jaRQ8TqADasIBYXu0CCKCrNjsJ 7GcN+/BiX8PWjNqLdB0Prq1bBhcWiSZbNh3b7mnGeHqE5EvyWfzyyAtwpuG4pHc2yWvNfpY3x34it 9Iacibyg==; Received: by zero.zsh.org with local id 1r9qng-000C8f-Rg; Sun, 03 Dec 2023 18:02:40 +0000 Authentication-Results: zsh.org; iprev=pass (mail-lj1-f180.google.com) smtp.remote-ip=209.85.208.180; dkim=pass header.d=brasslantern-com.20230601.gappssmtp.com header.s=20230601 header.a=rsa-sha256; dmarc=none header.from=brasslantern.com; arc=none Received: from mail-lj1-f180.google.com ([209.85.208.180]:58822) by zero.zsh.org with esmtps (TLS1.3:TLS_AES_128_GCM_SHA256:128) id 1r9qnQ-000Bqt-Pw; Sun, 03 Dec 2023 18:02:25 +0000 Received: by mail-lj1-f180.google.com with SMTP id 38308e7fff4ca-2c9f751663bso8351371fa.1 for ; Sun, 03 Dec 2023 10:02:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=brasslantern-com.20230601.gappssmtp.com; s=20230601; t=1701626544; x=1702231344; darn=zsh.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=j2OJjK7Qg+aVH5uSwHQCROox1Hk7xzeYJF4TeXvw9yo=; b=l3VwClLl+TiUNaOQAKr+ZYl5y01NjM6EXqQwLy7xj3XjTneoS4ojZeModGx8lWyLb3 a5cvDiHtnMQe+FdsqtMfDZW6pZd3J2oK02YPzZqWJ1CexEN1MAYgZxIj3YXJSEGGVPbR AJUKR8Tw+eiug77oqX/bon/vGUhWf/Ese5TGbzf9JM4iH1hVOMY3jwiPSAGLe4s6xq+y IWcHiFQ8URG/Q7tYJJO7mc4l6q/rFAJbqIO3XsLVzyE9IQGx0+FP3UctNPJWbvciq5y+ anryBRehr0ZL9tg+UNIKjX1/DIa/bt+tUKjT7tp3z3qkGOk4pLBmXzYsZUIFD03nt7TY 7Jbg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701626544; x=1702231344; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=j2OJjK7Qg+aVH5uSwHQCROox1Hk7xzeYJF4TeXvw9yo=; b=ME9dywFla90kup+dSY5zV0gSzPCNx93qUBOd/fyh5I3J/wcf9Uy0ydBvDR02rx7AbZ jm33hP1+sXIm4IPf/3HP3mnNWgrA9aJg+BWhdvomjWU8OqISBpQI9pRepH7j+SAZ2mqh FA48v+36vD3N5QkYB3sVWZf64wPI0eOjfmScuUNFZixDjKpL0sNkxkE3H6dYsoiH6I2z OI/G2dUkwCjG9nCxVpRBHUOeZ7kqfXo1tiMh2Q/bYhIfbeRKlahIluCZySijDr/c5t6B FQxut3gliK3kCch/uc2XC3EmiZCT+u0Su/nEo+YKRHFN7UB3VA/8uD/VkvgrRnAiM07M qEOA== X-Gm-Message-State: AOJu0YyscFWCXTFGq7pi7TZ8b7M75JDOaj6S9PTiCOwA+B3C8l2GLcWU ce2ENqKeN8Mkhf9WADUf2rH7VfiqAcMugWedXkAcWIu08kXviXEleWw= X-Google-Smtp-Source: AGHT+IErKcs+6Jp3kbHF+VzM4fKB6iT73HGliG1rqaSPKJxR9B3MTfS0AdtGBuq1Mv198Jq5lq0HY3m5UrWe2CS2r34= X-Received: by 2002:a2e:a304:0:b0:2c9:bb88:6ef3 with SMTP id l4-20020a2ea304000000b002c9bb886ef3mr917147lje.18.1701626543409; Sun, 03 Dec 2023 10:02:23 -0800 (PST) MIME-Version: 1.0 From: Bart Schaefer Date: Sun, 3 Dec 2023 10:02:12 -0800 Message-ID: Subject: TRAPCHLD and wait To: Zsh hackers list Content-Type: text/plain; charset="UTF-8" X-Seq: 52363 Archived-At: X-Loop: zsh-workers@zsh.org Errors-To: zsh-workers-owner@zsh.org Precedence: list Precedence: bulk Sender: zsh-workers-request@zsh.org X-no-archive: yes List-Id: List-Help: , List-Subscribe: , List-Unsubscribe: , List-Post: List-Owner: List-Archive: The manual says: It is possible to wait for recent processes (specified by process ID, not by job) that were running in the background even if the process has exited. Typically the process ID will be recorded by capturing the value of the variable $! immediately after the process has been started. This does work in the most obvious cases: % { sleep 10; exit 23 } & bang=$! [1] 560524 % sleep 20 [1] + exit 23 { sleep 10; exit 23; } % wait $bang % print $? 23 % However, you can't do that wait in a CHLD trap, even though it still works after the trap has run: % TRAPCHLD() { wait $bang q=$? zle -I print $q zle -R } % { sleep 10; exit 21 } & bang=$! [1] 560661 % [1] + exit 21 { sleep 10; exit 21; } % TRAPCHLD:wait:1: pid 560661 is not a child of this shell 127 % wait $bang % print $? 21 % I suspect this has to do with order of operations in the signal handlers but thought I'd ask for clues before digging in myself.