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, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 17538 invoked from network); 27 Mar 2022 17:39:16 -0000 Received: from zero.zsh.org (2a02:898:31:0:48:4558:7a:7368) by inbox.vuxu.org with ESMTPUTF8; 27 Mar 2022 17:39:16 -0000 ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20210803; t=1648402756; b=N+nNuHU8qd6FZm65VgozmH8eLZNL9+whJsRUv6nc13GDB/FUKqFZ8DAABXZqQb4ral2tLirjtc +b/1zl7s4UtWbv4xTNKtAiS+EdjH+CJM+VhhxJU/QIIbq6V0S/MhR2x+SgiK6ftAkn/S6rJxn0 qM57vPZTaPSzwBcBspK5sQSy0lRRCNssSOjKbSY6LCWByd0t5JSd2touf42D4NKND0vhD+5u02 ChH1MiQhtqw8Wu8wTeFXUZeB9RNVZT/ZnYCEQHyqICZXw7aTxakIWPhcIgZawtV4WF95te370D jMmgynGXOwygV4bckzEXsQEBkVxS704oWgElIrTMWcIjCw==; ARC-Authentication-Results: i=1; zsh.org; iprev=pass (mail-lj1-f172.google.com) smtp.remote-ip=209.85.208.172; dkim=pass header.d=brasslantern-com.20210112.gappssmtp.com header.s=20210112 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=1648402756; bh=yjDYg8SxHJU1XTcGjoUsHuon0AWkGHBMy0XmERx3L1M=; h=List-Archive:List-Owner:List-Post:List-Unsubscribe:List-Subscribe:List-Help: List-Id:Sender:Content-Type:To:Subject:Message-ID:Date:From:In-Reply-To: References:MIME-Version:DKIM-Signature:DKIM-Signature; b=OiGV2cqpqZx0egzkTRRRAs71felcwZq5xUo1iFvKcTCAGTd4iF5IYDqE96z8g+U6vHoq5BftCE 1JLcmmqIVshLGb6SWHGW3pgeuD2GCa3wVd9NLsH7/WJ70I4KfTN3v4yMXLS4gjMsySkprmF+eG dCKjRcEJ5N8nRfRn3SsUldeutaRDkGXvz4/Nr8vBzQLUarqOjh+HpKP9mdOeYvdEBGuxiumM+Y FIL97Tbn/cz5cGv/YKeioZ+Kw6+4ZB5bDMtZRIAqWw/38c79pvNsmXAa5Jzi6BBoDucRbwODqn dw/78qHUr3o70x7fJs2xGkR1xHdG8HTACASB/lal/XZ8ww==; 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:In-Reply-To:References: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; bh=hMIEsIIxncNwGf0Dynmt++3gZtEha0efg3Wi0+znqiw=; b=OLYNl4ospd1el2A1UyCrrqAFZc mXwgkBMhpjIkxtwKlkgwIxKjShzS3zbfNYBslvJSUvL1J2+XRxGRnuZ+Lsqk5ZfCY5IagHBODZuEq Kw209NDumbgio60F+dO9Og0hU+vydd4pMpKqZ2BLkNkqmJeMLtyJLlhQjMxxjXFL7lIL80DyS4L9W bUsWdE7AA0j+FTgZQQUoMHjb1+Kifd0mlefz/prkaBMBQfF3L6hMU9gcZ/bGZ8vETQTK3KegqdXfk 5CZkTq8UWG+DhAVeThBHoYjUvAqQHuUAo/rsJBN8bCoCdQJb9EnDHG0Te2x5LoNuTim0mrvcpl1l8 adWiL1+Q==; Received: from authenticated user by zero.zsh.org with local id 1nYWrD-0002Td-Sx; Sun, 27 Mar 2022 17:39:15 +0000 Authentication-Results: zsh.org; iprev=pass (mail-lj1-f172.google.com) smtp.remote-ip=209.85.208.172; dkim=pass header.d=brasslantern-com.20210112.gappssmtp.com header.s=20210112 header.a=rsa-sha256; dmarc=none header.from=brasslantern.com; arc=none Received: from mail-lj1-f172.google.com ([209.85.208.172]:37590) by zero.zsh.org with esmtps (TLS1.3:TLS_AES_128_GCM_SHA256:128) id 1nYWqe-00026m-1H; Sun, 27 Mar 2022 17:38:40 +0000 Received: by mail-lj1-f172.google.com with SMTP id r22so16378855ljd.4 for ; Sun, 27 Mar 2022 10:38:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=brasslantern-com.20210112.gappssmtp.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=hMIEsIIxncNwGf0Dynmt++3gZtEha0efg3Wi0+znqiw=; b=2Vnx6xsAD3KzCbBUCVEybeiol6CKTazDMjgNc+l7wkGPkk44DMmZqatrnme/oEBQES f7wsKBvfpFTfhd7efL2jwOhBqbKLs4nDRlJigipJZeSfY4eiSuCjJIu79Sb8fsomIOyH TzIc6g75EUrkNwfSMALb/iw3cvVlDzi8dZxrmavm9GTZZpFB+z4Zqz8FSkyRS6mXqoMf uv/SpdHgr9Cjc2DAiDfFcnimBvWJfGIPnKkgwOkVJAFTGNenECty/lQTVhyLLo31+HRa xg2ojR3AlE6azJoPhWy8XoEtU/1ABJMGNfM+S3KOHSTunzfCRZnMKawWpuakAhgO3TNs djbg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=hMIEsIIxncNwGf0Dynmt++3gZtEha0efg3Wi0+znqiw=; b=SM7QR3UbE47VKkSfK30wSLVXEMzUfpkXdcvYVul4DFtP7zNt7ov0jpeNb5CnxzEc33 DrE0JUul+Vc8ctadgFSdRe7bJqv9oDnM/Wu0YRpFsND23L5PbhVBITbbZuLOS4o2FJRn r7sWvU446ZlLdQ1A2lQ+a64D+3hlQBvvxSr4pYuMxLhL7Kt5QP4PekOewgVJkry+tO+b QXwuY+tl5eqM8zoO9CX+kCx+JxNdLlNzxxF/gOuGPBt1QgkiYvp7+ltZCy62EKPv/lTy Rnl50fJu6hxdTOvQkYzMnr88pG6Mi8cOJSxy+LMY96ap2J8eBrm8o9xjbIs7gsR4rSNa IiBg== X-Gm-Message-State: AOAM531miiKPK6j61EKaCB/lcO6Dn9UXMJaR81KQpWLmf3fsMJ8rV0tR lVjKpM45tAznw8xQxjaOqNzUmiuErEBiXwNGIrLEHQIk5es= X-Google-Smtp-Source: ABdhPJxK+bRu/bdmFEH4xA+tk3jGG4AYpV7ygwI26Z49vuFbCzqWW3fmD+B0HvccuZMAWvJhDVCumbO8UoqdlRZD8Vc= X-Received: by 2002:a2e:8610:0:b0:249:7bc4:bbb8 with SMTP id a16-20020a2e8610000000b002497bc4bbb8mr16788530lji.370.1648402718934; Sun, 27 Mar 2022 10:38:38 -0700 (PDT) MIME-Version: 1.0 References: <1E0E1226-E3E8-40AD-87CD-93A602B1B08B@easesoftware.com> <36966db7bf519a888d7daca39fdd39f1e39b8511.camel@fifi.org> In-Reply-To: From: Bart Schaefer Date: Sun, 27 Mar 2022 10:38:27 -0700 Message-ID: Subject: [PATCH] Re: Parallel processing To: Zsh hackers list Content-Type: multipart/mixed; boundary="00000000000082b18d05db36aa6c" X-Seq: 49897 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: --00000000000082b18d05db36aa6c Content-Type: text/plain; charset="UTF-8" [Moving to -workers] On Sat, Mar 26, 2022 at 3:19 PM Bart Schaefer wrote: > > > Anyways, zargs is not doing a stellar job currently with collecting > > exit statuses from commands ran in parallel: > > There might be something more that could be done now, to > pick up the status of the rest ... but I'm reluctant to mess with that > while the segfault is unfixed. I found a different reproducer for the segfault, and had an idea about zargs, so ... I messed with it ... > Hmm ... zargs uses > wait ${${jobstates[(R)running:*]/#*:/}/%=*/} $jobstates can be avoided by collecting the values of $! in a local array. > However, that "wait" returns the exit status of only one As noted in the comments in (the current iteration of) zargs, "wait $j1 $j2 $j3 ..." waits for all those jobs and returns the status of whichever one exits last. However, "wait" with no arguments places all the exit status in the internal list of exited jobs, after which the statuses may be collected individually by "wait $j1; wait $j2; wait $j3". It's not possible to wait for the same specific job more than once, so it doesn't work to first wait for a list of jobs and then wait again for each of them. --00000000000082b18d05db36aa6c Content-Type: text/plain; charset="US-ASCII"; name="zargs_jobs.txt" Content-Disposition: attachment; filename="zargs_jobs.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l19ke4620 ZGlmZiAtLWdpdCBhL0Z1bmN0aW9ucy9NaXNjL3phcmdzIGIvRnVuY3Rpb25zL01pc2MvemFyZ3MK aW5kZXggZWNkNjlmN2U0Li44MTkxNmEzYWMgMTAwNjQ0Ci0tLSBhL0Z1bmN0aW9ucy9NaXNjL3ph cmdzCisrKyBiL0Z1bmN0aW9ucy9NaXNjL3phcmdzCkBAIC00MywxNCArNDMsMTIgQEAKICMgdGhh biAxMjcgZm9yICJjb21tYW5kIG5vdCBmb3VuZCIgc28gdGhpcyBmdW5jdGlvbiBpbmNvcnJlY3Rs eSByZXR1cm5zCiAjIDEyMyBpbiB0aGF0IGNhc2UgaWYgdXNlZCB3aXRoIHpzaCA0LjAueC4KICMK LSMgV2l0aCB0aGUgLS1tYXgtcHJvY3Mgb3B0aW9uLCB6YXJncyBtYXkgbm90IGNvcnJlY3RseSBj YXB0dXJlIHRoZSBleGl0Ci0jIHN0YXR1cyBvZiB0aGUgYmFja2dyb3VuZGVkIGpvYnMsIGJlY2F1 c2Ugb2YgbGltaXRhdGlvbnMgb2YgdGhlICJ3YWl0IgotIyBidWlsdGluLiAgSWYgdGhlIHpzaC9w YXJhbWV0ZXIgbW9kdWxlIGlzIG5vdCBhdmFpbGFibGUsIHRoZSBzdGF0dXMgaXMKLSMgTkVWRVIg Y29ycmVjdGx5IHJldHVybmVkLCBvdGhlcndpc2UgdGhlIHN0YXR1cyBvZiB0aGUgbG9uZ2VzdC1y dW5uaW5nCi0jIGpvYiBpbiBlYWNoIGJhdGNoIGlzIGNhcHR1cmVkLgorIyBCZWNhdXNlIG9mICJ3 YWl0IiBsaW1pdGF0aW9ucywgLS1tYXgtcHJvY3Mgc3Bhd25zIG1heC1wcm9jcyBqb2JzLCB0aGVu CisjIHdhaXRzIGZvciBhbGwgb2YgdGhvc2UsIHRoZW4gc3Bhd25zIGFub3RoZXIgYmF0Y2gsIGV0 Yy4KICMKLSMgQWxzbyBiZWNhdXNlIG9mICJ3YWl0IiBsaW1pdGF0aW9ucywgLS1tYXgtcHJvY3Mg c3Bhd25zIG1heC1wcm9jcyBqb2JzLAotIyB0aGVuIHdhaXRzIGZvciBhbGwgb2YgdGhvc2UsIHRo ZW4gc3Bhd25zIGFub3RoZXIgYmF0Y2gsIGV0Yy4KKyMgVGhlIG1heGltdW0gbnVtYmVyIG9mIHBh cmFsbGVsIGpvYnMgZm9yIHdoaWNoIGV4aXQgc3RhdHVzIGlzIGF2YWlsYWJsZQorIyBpcyBkZXRl cm1pbmVkIGJ5IHRoZSBzeXNjb25mIENISUxEX01BWCBwYXJhbWV0ZXIsIHdoaWNoIGNhbid0IGJl IHJlYWQKKyMgb3IgY2hhbmdlZCBmcm9tIHdpdGhpbiB0aGUgc2hlbGwuCiAjCiAjIERpZmZlcmVu Y2VzIGZyb20gUE9TSVggeGFyZ3M6CiAjCkBAIC02OSw2ICs2Nyw5IEBACiAjICAgLUkvLUwgYW5k IGltcGxlbWVudGF0aW9ucyByZXBvcnRlZGx5IGRpZmZlci4pICBJbiB6YXJncywgLWkvLUkgaGF2 ZQogIyAgIHRoaXMgYmVoYXZpb3IsIGFzIGRvIC1sLy1MLCBidXQgd2hlbiAtaS8tSSBhcHBlYXIg YW55d2hlcmUgdGhlbiAtbC8tTAogIyAgIGFyZSBpZ25vcmVkIChmb3JjZWQgdG8gMSkuCisjCisj ICogVGhlIHVzZSBvZiBTSUdVU1IxIGFuZCBTSUdVU1IyIHRvIGNoYW5nZSB0aGUgbnVtYmVyIG9m IHBhcmFsbGVsIGpvYnMKKyMgICBpcyBub3Qgc3VwcG9ydGVkLgogCiAjIEZpcnN0LCBjYXB0dXJl IHRoZSBjdXJyZW50IHNldG9wdHMgYXMgInN0aWNreSBlbXVsYXRpb24iCiBpZiB6bW9kbG9hZCB6 c2gvcGFyYW1ldGVyCkBAIC04Niw3ICs4Nyw3IEBAIGZpCiBlbXVsYXRlIC1MIHpzaCB8fCByZXR1 cm4gMQogbG9jYWwgLWEgb3B0cyBlb2YgbiBzIGwgUCBpCiAKLWxvY2FsIFpBUkdTX1ZFUlNJT049 IjEuNSIKK2xvY2FsIFpBUkdTX1ZFUlNJT049IjEuNyIKIAogaWYgenBhcnNlb3B0cyAtYSBvcHRz IC1EIC0tIFwKIAktZW9mOjo9ZW9mIGU6Oj1lb2YgXApAQCAtMjY0LDE3ICsyNjUsMTkgQEAgaWYg KCggUCAhPSAxICYmIEFSR0MgPiAxICkpCiB0aGVuCiAgICAgIyBUaGVzZSBzZXRvcHRzIGFyZSBu ZWNlc3NhcnkgZm9yICJ3YWl0IiBvbiBtdWx0aXBsZSBqb2JzIHRvIHdvcmsuCiAgICAgc2V0b3B0 IG5vbm90aWZ5IG5vbW9uaXRvcgotICAgIGJnPScmJwotICAgIGlmIHptb2Rsb2FkIC1pIHpzaC9w YXJhbWV0ZXIgMj4vZGV2L251bGwKLSAgICB0aGVuCi0Jd2FpdD0nd2FpdCAkeyR7am9ic3RhdGVz WyhSKXJ1bm5pbmc6Kl0vIyo6L30vJT0qL30nCi0gICAgZWxzZQotCXdhaXQ9J3dhaXQnCi0gICAg ZmkKKyAgICBsb2NhbCAtYSBfemFqb2JzCisgICAgbG9jYWwgagorICAgIGJnPScmIF96YWpvYnMr PSggJCEgKScKKyAgICB3YWl0PSd3YWl0JworICAgIGFuYWx5emU9JworICAgIGZvciBqIGluICRf emFqb2JzOyBkbworICAgICAgd2FpdCAkagorICAgICAgJyIkYW5hbHl6ZSInCisgICAgZG9uZTsg X3pham9icz0oKScKIGZpCiAKLSMgRXZlcnl0aGluZyBoYXMgdG8gYmUgaW4gYSBzdWJzaGVsbCBq dXN0IGluIGNhc2Ugb2YgYmFja2dyb3VuZGluZyBqb2JzLAotIyBzbyB0aGF0IHdlIGRvbid0IHVu aW50ZW50aW9uYWxseSAid2FpdCIgZm9yIGpvYnMgb2YgdGhlIHBhcmVudCBzaGVsbC4KKyMgRXZl cnl0aGluZyBoYXMgdG8gYmUgaW4gYSBzdWJzaGVsbCBzbyB0aGF0IHdlIGRvbid0ICJ3YWl0IiBm b3IgYW55CisjIHVucmVsYXRlZCBqb2JzIG9mIHRoZSBwYXJlbnQgc2hlbGwuCiAoCiAKIHdoaWxl ICgoQVJHQykpCg== --00000000000082b18d05db36aa6c--