From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ej1-x629.google.com (mail-ej1-x629.google.com [IPv6:2a00:1450:4864:20::629]) by sourceware.org (Postfix) with ESMTPS id D07C1384A87E for ; Tue, 19 May 2020 11:26:56 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org D07C1384A87E Received: by mail-ej1-x629.google.com with SMTP id e2so11410403eje.13 for ; Tue, 19 May 2020 04:26:56 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=Dupn0tkUpicxYcW4CYG19wcafowUr0WUQmTo3876hyA=; b=VQLDRTQv49QLQGsH73PBtgThKrf4mileJ2XCS/T+Z+ta5r8sza0jTVfrlj6jznI+6p Y+x0LPyKJjb+5tAFqJmT7zShQHNFKCrIKvcLncT8tY6q+WQdAMXeoPQZJSkwocsIMwVz wrc1/QKVdmAWT7FKp9/aq1F9J695M3Ivs4JACNGY7cqxub6IyEPX1cpRULR5DVEsP9fP WLg5PuLDCwXW9frKix5l6c9OmQ8q9gKZ0EraUT6DsXhSYmo/Arwg72oai12Jdiqey8U7 Lx/jGo9c1ZvDGoz8X5OfduPSPfRmGzrUl1SRVK2LTDeEWctasAgWuUEUjO3AlL6HLkzH HzQw== X-Gm-Message-State: AOAM533c+v4HqGxF/26K8b1VNWhVybQVmbnTn2PNyrhAQzJUr7hCiPB3 j3j5c2z/O8TYSKPPYhsPsHyQF2sAR5L6ZmwnfF3AhOwi X-Google-Smtp-Source: ABdhPJzWhkjaMt9S7e7zPBBAl7DbwmLXekScfrQXbF4CpI2WIlT+VVP0O7Xrv3eVbw9VuSuAMJGFTvA/BTzyjvl9P58= X-Received: by 2002:a17:907:40c7:: with SMTP id nv7mr17886510ejb.16.1589887615547; Tue, 19 May 2020 04:26:55 -0700 (PDT) MIME-Version: 1.0 From: =?UTF-8?Q?Morten_Kj=C3=A6rulff?= Date: Tue, 19 May 2020 13:26:44 +0200 Message-ID: Subject: name pipe problem: 1 writer, multiple concurrent readers To: cygwin@cygwin.com Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-1.0 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, KAM_LINEPADDING, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=no autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: cygwin@cygwin.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: General Cygwin discussions and problem reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 May 2020 11:27:12 -0000 Hi, The following script: #!/bin/sh rm -f t.pip t.txt mkfifo t.pip printf "line1\nline2\n" >t.txt ps { while true ; do cp t.txt t.pip done } & rm -f t.rc.* for rc in 0 1 2 3 4 5 6 7 8 9 ; do { diff t.pip t.txt echo $? >t.rc.$rc } done echo result1 start ls t.rc.* | wc -l cat t.rc.* echo result1 end rm -f t.rc.* for rc in 0 1 2 3 4 5 6 7 8 9 ; do { diff t.pip t.txt echo $? >t.rc.$rc } & # run the readers in parallel done sleep 10 echo result2 start ls t.rc.* | wc -l cat t.rc.* echo result2 end ps Give me output like this: $ ./tpip.sh PID PPID PGID WINPID TTY UID STIME COMMAND 1642 1600 1642 65264 cons1 1058872 13:18:58 /usr/bin/sh 1600 1 1600 72728 cons1 1058872 13:18:33 /usr/bin/bash 1645 1642 1642 42088 cons1 1058872 13:18:58 /usr/bin/ps result1 start 10 0 0 0 0 0 0 0 0 0 0 result1 end 0a1,2 > line1 > line2 diff: t.pip result2 start 1 2 result2 end PID PPID PGID WINPID TTY UID STIME COMMAND 1690 1688 1642 104032 cons1 1058872 13:19:01 /usr/bin/diff 1681 1642 1642 95012 cons1 1058872 13:19:00 /usr/bin/sh 1642 1600 1642 65264 cons1 1058872 13:18:58 /usr/bin/sh 1684 1681 1642 99624 cons1 1058872 13:19:00 /usr/bin/diff 1678 1676 1642 94532 cons1 1058872 13:19:00 /usr/bin/diff 1688 1642 1642 88864 cons1 1058872 13:19:01 /usr/bin/sh 1698 1642 1642 104820 cons1 1058872 13:19:11 /usr/bin/ps 1692 1642 1642 66572 cons1 1058872 13:19:01 /usr/bin/sh 1677 1674 1642 86692 cons1 1058872 13:19:00 /usr/bin/diff 1646 1642 1642 30888 cons1 1058872 13:18:58 /usr/bin/sh 1600 1 1600 72728 cons1 1058872 13:18:33 /usr/bin/bash 1686 1685 1642 14320 cons1 1058872 13:19:01 /usr/bin/diff 1685 1642 1642 25608 cons1 1058872 13:19:00 /usr/bin/sh 1676 1642 1642 104212 cons1 1058872 13:19:00 /usr/bin/sh 1689 1642 1642 98004 cons1 1058872 13:19:01 /usr/bin/sh 1674 1642 1642 44152 cons1 1058872 13:19:00 /usr/bin/sh 1680 1646 1642 28224 cons1 1058872 13:19:00 /usr/bin/cp 1682 1679 1642 43612 cons1 1058872 13:19:00 /usr/bin/diff 1694 1692 1642 67736 cons1 1058872 13:19:01 /usr/bin/diff 1683 1642 1642 93544 cons1 1058872 13:19:00 /usr/bin/sh 1679 1642 1642 90188 cons1 1058872 13:19:00 /usr/bin/sh 1691 1689 1642 68560 cons1 1058872 13:19:01 /usr/bin/diff 1687 1683 1642 83952 cons1 1058872 13:19:01 /usr/bin/diff $ That is, when I run the readers in sequence, no problem, but when I run the in parallel, they either hang or t.pip seems empty. Is this as expected? My final goal is to have my .netrc file encrypted. t.pip would be .netrc and t.txt would be the encrypted one. If I can get to my goal another way, feel free to give me the idea. /Morten