www.delorie.com/archives/browse.cgi | search |
DMARC-Filter: | OpenDMARC Filter v1.4.2 delorie.com 55HMgoDI684563 |
Authentication-Results: | delorie.com; dmarc=pass (p=none dis=none) header.from=cygwin.com |
Authentication-Results: | delorie.com; spf=pass smtp.mailfrom=cygwin.com |
DKIM-Filter: | OpenDKIM Filter v2.11.0 delorie.com 55HMgoDI684563 |
Authentication-Results: | delorie.com; |
dkim=pass (1024-bit key, unprotected) header.d=cygwin.com header.i=@cygwin.com header.a=rsa-sha256 header.s=default header.b=Vor530fV | |
X-Recipient: | archive-cygwin AT delorie DOT com |
DKIM-Filter: | OpenDKIM Filter v2.11.0 sourceware.org 56908386B880 |
DKIM-Signature: | v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com; |
s=default; t=1750200168; | |
bh=9R+uStGE+3wDtb+Zqps+tgRIg+qdhNVaLZVK6Qb66nQ=; | |
h=Date:Subject:To:References:In-Reply-To:List-Id:List-Unsubscribe: | |
List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: | |
From; | |
b=Vor530fV3k2XDqIV0eIfqP7F0AWsguMsaKd5LEUTwv2+kyrJ3hKnPB+e/227SbMiE | |
IjIigAOjfEV3Rw0LMNjdtcqHufM1jrhrcqfFTFC5U4Ph/NDLZ3CFM2N9sfIIPfCzd8 | |
AOWBLkgEMkKAZ5N30ioR/ZgEZuHTRxDFTsr2ykmM= | |
X-Original-To: | cygwin AT cygwin DOT com |
Delivered-To: | cygwin AT cygwin DOT com |
DMARC-Filter: | OpenDMARC Filter v1.4.2 sourceware.org A4300385F01F |
ARC-Filter: | OpenARC Filter v1.0.0 sourceware.org A4300385F01F |
ARC-Seal: | i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1750200135; cv=none; |
b=MS3PzdCcif3htjq013SfmTtTXYsobGuC2YwgtbJso6VcPtBZy6kpZzv7rDdQ9L4zytSwkeZyH6QY5KPrcjd7U1cCgyv5UmEjt/PAgJGrZP7sVq1EW8it3DBbKytROMS3ZHOMjphrpempnM6tY5i0wM758nOyKUWdQcBq+n4TiUM= | |
ARC-Message-Signature: | i=1; a=rsa-sha256; d=sourceware.org; s=key; |
t=1750200135; c=relaxed/simple; | |
bh=aSsMXNjgUuqGtIBLVUsciLTp9lrAqOJOU4E2duAHHzQ=; | |
h=Message-ID:Date:MIME-Version:Subject:To:From; | |
b=UNIDvqEu4gUzqeuaKxxILgk3H0fUv5QqdC6Mu+nXOV2C9JYNMI+eRNhFapC5XaCQe/OC4DdfbMvqUAuRK4d/j0NfkaQhrltI2gyq4rsFrVYWtsO/W+2w6DJBDOX3xtU2BQj6/owyhic501hWjC8pDQbTpED/jd4jRv9Ru0TGLtk= | |
ARC-Authentication-Results: | i=1; server2.sourceware.org |
DKIM-Filter: | OpenDKIM Filter v2.11.0 sourceware.org A4300385F01F |
Message-ID: | <eb7786ee-dc7a-4689-9d17-b842e581d7c7@maxrnd.com> |
Date: | Tue, 17 Jun 2025 15:42:26 -0700 |
MIME-Version: | 1.0 |
User-Agent: | Mozilla Thunderbird |
Subject: | Re: Calling system() in multi-threads. |
To: | cygwin AT cygwin DOT com |
References: | <20250617215411 DOT ebf69d1c18b55191a1b76c01 AT nifty DOT ne DOT jp> |
In-Reply-To: | <20250617215411.ebf69d1c18b55191a1b76c01@nifty.ne.jp> |
X-BeenThere: | cygwin AT cygwin DOT com |
X-Mailman-Version: | 2.1.30 |
List-Id: | General Cygwin discussions and problem reports <cygwin.cygwin.com> |
List-Unsubscribe: | <https://cygwin.com/mailman/options/cygwin>, |
<mailto:cygwin-request AT cygwin DOT com?subject=unsubscribe> | |
List-Archive: | <https://cygwin.com/pipermail/cygwin/> |
List-Post: | <mailto:cygwin AT cygwin DOT com> |
List-Help: | <mailto:cygwin-request AT cygwin DOT com?subject=help> |
List-Subscribe: | <https://cygwin.com/mailman/listinfo/cygwin>, |
<mailto:cygwin-request AT cygwin DOT com?subject=subscribe> | |
From: | Mark Geisert via Cygwin <cygwin AT cygwin DOT com> |
Reply-To: | Mark Geisert <mark AT maxrnd DOT com> |
Errors-To: | cygwin-bounces~archive-cygwin=delorie DOT com AT cygwin DOT com |
Sender: | "Cygwin" <cygwin-bounces~archive-cygwin=delorie DOT com AT cygwin DOT com> |
This is a multi-part message in MIME format. --------------tNy2LG7mIwb5hV8xM91Pvhbc Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hi Takashi, On 6/17/2025 5:54 AM, Takashi Yano via Cygwin wrote: > Hi, > > If system() is called in parallel in threads, system() > fails with exit code 127. > > Just compile pthread_system.c attached and run. > > I believe system() is multi-thread safe so the STC > should work. I regret to inform that system() is not currently MT-safe. I discovered this a few years ago when porting YAFU (Yet Another Factoring Utility). I ended up supplying a wrapper that serialized the system() call itself but allowed multiple wrappers (and thus child processes) to be running at the same time. I never got around to supplying a fix for Cygwin. I've attached the code. HTH somehow, ..mark --------------tNy2LG7mIwb5hV8xM91Pvhbc Content-Type: text/plain; charset=UTF-8; name="safe_system.c" Content-Disposition: attachment; filename="safe_system.c" Content-Transfer-Encoding: base64 LyoKICogc2FmZV9zeXN0ZW0uYwogKiBUaHJlYWQtc2FmZSB2ZXJzaW9uIG9mIHN5c3RlbSgp IGZvciBwbGF0Zm9ybXMgbmVlZGluZyBpdCwgbGlrZSBDeWd3aW4uCiAqCiAqIENvcHlyaWdo dCDCqSAyMDE4IE1hcmsgQS4gR2Vpc2VydC4gIFBsYWNlZCBpbiBwdWJsaWMgZG9tYWluLgog KgogKiBQT1NJWCBzdGF0ZXMgdGhhdCBzeXN0ZW0oKSBuZWVkIG5vdCBiZSB0aHJlYWQtc2Fm ZS4gIE9uIEN5Z3dpbiBpdCBpc24ndC4KICogUE9TSVggYWxzbyBzdGF0ZXMgdGhhdCBzeXN0 ZW0oKSBjYW5ub3QgcmV0dXJuIHRvIGl0cyBjYWxsZXIgdW50aWwgdGhlCiAqIHRhc2sgaXQg aGFzIHNwYXduZWQgaGFzIGNvbXBsZXRlZC4KICoKICogSWYgYSBDeWd3aW4gcHJvY2VzcyB1 c2VzIHN5c3RlbSgpIHNpbXVsdGFuZW91c2x5IGZyb20gbXVsdGlwbGUgcHRocmVhZHMsCiAq IHRoZSBDeWd3aW4gRExMIHJlcG9ydHMgaW50ZXJuYWwgZXJyb3JzIGFuZCBvZnRlbiBoYW5n cyB0aGUgcHJvY2Vzcy4gIFRoaXMKICogaXMgZWFzaWx5IHdvcmtlZCBhcm91bmQgYnkgd3Jh cHBpbmcgc3lzdGVtKCkgY2FsbHMgaW4gYSBjcml0aWNhbCBzZWN0aW9uLgogKiBIb3dldmVy LCBkb2luZyB0aGlzIGhhcyB0aGUgZWZmZWN0IG9mIHJ1bm5pbmcgdGhlIChwb3RlbnRpYWxs eSBsb25nCiAqIGR1cmF0aW9uKSB0YXNrIHNwYXduZWQgYnkgc3lzdGVtKCkgd2hpbGUgaG9s ZGluZyB0aGUgY3JpdGljYWwgc2VjdGlvbiB0aGUKICogZW50aXJlIHRpbWUuICBUaGlzIGJl aGF2aW9yIGVuZHMgdXAgc2VyaWFsaXppbmcgdGhlIHB0aHJlYWRzIHRoYXQgdXNlCiAqIHN5 c3RlbSgpIGFuZCB0aGUgYmVuZWZpdHMgb2YgcGFyYWxsZWxpemF0aW9uIGFyZSBsb3N0Lgog KgogKiBBZnRlciBpbnZlc3RpZ2F0aW9uIG9mIHZhcmlvdXMgYXBwcm9hY2hlcywgd2hhdCBp cyBkb25lIGhlcmUgaXMgdG8gbGF1bmNoCiAqIHRoZSBzcGF3bmVkIHRhc2sgYXMgYSBiYWNr Z3JvdW5kIHRhc2ssIG9idGFpbiBpdHMgcGlkLCBhbmQgd2FpdCBmb3IgdGhhdAogKiBwaWQg dG8gYmVjb21lIGludmFsaWQgKHdoaWNoIGluZGljYXRlcyB0aGUgdGFzayBoYXMgY29tcGxl dGVkIG9yIGFib3J0ZWQpLgogKgogKiBVbmZvcnR1bmF0ZWx5LCBQbGFuIEE6IHdhaXRpbmcg Zm9yIHRoZSB0YXNrIHdpdGggdGhlIHVzdWFsIHdhaXRwaWQoKSBvcgogKiB3YWl0KCkgY2Fu bm90IGJlIGRvbmUgYmVjYXVzZSB0aGUgdGFzayBvZiBpbnRlcmVzdCBpcyBub3QgYSBkaXJl Y3QgY2hpbGQKICogb2YgdGhlIHJ1bm5pbmcgcHJvY2Vzcy4gIFRoZXJlIGlzIGEgc2hlbGwg cHJvY2VzcyBpbnRlcnBvc2VkLCBhcyByZXF1aXJlZAogKiBieSBQT1NJWCBmb3Igc3lzdGVt KCkgdXNhZ2UuCiAqCiAqIEltcGxlbWVudGVkIGhlcmUgaXMgUGxhbiBDOiBhIFdpbmRvd3Mg aGFuZGxlIHRvIHRoZSBzcGF3bmVkIHRhc2svcHJvY2VzcwogKiAobm90IHRoZSBzaGVsbCkg aXMgd2FpdGVkIHVwb24uICBPbiBwbGF0Zm9ybXMgb3RoZXIgdGhhbiBXaW5kb3dzIG9yIEN5 Z3dpbiwKICogUGxhbiBCIGRlc2NyaWJlZCBiZWxvdyBtaWdodCBiZSB3b3JrYWJsZS4KICov CgojaWYgZGVmaW5lZChfX0NZR1dJTl9fKQoKI2luY2x1ZGUgPGRsZmNuLmg+CiNpbmNsdWRl IDxzaWduYWwuaD4KI2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2lu Y2x1ZGUgPHVuaXN0ZC5oPgojaW5jbHVkZSA8c3lzL2N5Z3dpbi5oPgojZGVmaW5lIFdJTjMy X0xFQU5fQU5EX01FQU4KI2luY2x1ZGUgPHdpbmRvd3MuaD4KCi8vWFhYOiBDT0RFIFdSSVRU RU4gQU5EIFRFU1RFRCBPTiB4ODZfNjQgQU5EIEhBUyBOT1QgQkVFTiBURVNURUQgT04geDg2 Cgp2b2xhdGlsZSBpbnQgaW5pdGlhbGl6aW5nOyAgIC8vIDA6IG5vdCB5ZXQsIDE6IGluIHBy b2dyZXNzLCAyOiBpbml0aWFsaXplZApDUklUSUNBTF9TRUNUSU9OIHN5c3RlbWNyaXQ7IC8v IGNyaXRpY2FsIHNlY3Rpb24gdG8gc2VyaWFsaXplIHN5c3RlbSgpIHVzZQp2b2xhdGlsZSBp bnQgdXNlY291bnQ7ICAgICAgIC8vIHNvbWV0aGluZyB0byBrZWVwIHRyYWNraW5nIHBpZGZp bGVzIHNlcGFyYXRlZAoKaW50CnNhZmVfc3lzdGVtKGNvbnN0IGNoYXIgKmNtZCkKewogICAg Ly8gSW5pdGlhbGl6ZSBpbiB0aHJlYWQtc2FmZSBtYW5uZXIKICAgIGlmICgwID09IEludGVy bG9ja2VkQ29tcGFyZUV4Y2hhbmdlKCZpbml0aWFsaXppbmcsIDEsIDApKSB7CglJbml0aWFs aXplQ3JpdGljYWxTZWN0aW9uKCZzeXN0ZW1jcml0KTsKCWluaXRpYWxpemluZysrOwogICAg fQogICAgZWxzZSB3aGlsZSAoMSA9PSBpbml0aWFsaXppbmcpIHsKCXVzbGVlcCgxMDAwMCk7 IC8vIDEwbXMKICAgIH0KCiAgICAvLyBBbGxvY2F0ZSBzcGFjZSBmb3IgbmFtZSBvZiBwaWRm aWxlCiAgICBjaGFyICpwaWRmaWxlbmFtZSA9IGFsbG9jYSg2NCk7CgogICAgLy8gQWxsb2Nh dGUgc3BhY2UgZm9yIGNvbW1hbmQgYnVmIGluY2x1ZGluZyBnbHVlIGZvciB0aGUgdHJhY2tp bmcgcGlkZmlsZQogICAgY2hhciAqYnVmID0gYWxsb2NhKHN0cmxlbihjbWQpICsgMTI4KTsK CiAgICAvLyBXcmFwIHN5c3RlbSgpIGNhbGwgaW4gYSBjcml0aWNhbCBzZWN0aW9uIGFzIGl0 J3Mgbm90IHRocmVhZC1zYWZlCiAgICBFbnRlckNyaXRpY2FsU2VjdGlvbigmc3lzdGVtY3Jp dCk7CgogICAgLy8gU2V0IHVwIHRoZSBjb21wbGV0ZSBhdWdtZW50ZWQgY29tbWFuZCBzdHJp bmcKICAgIHNwcmludGYocGlkZmlsZW5hbWUsICJfeWFmdV9zeXN0ZW1fLiVkIiwgdXNlY291 bnQrKyk7CiAgICBjaGFyICpwdHIgPSBzdHBjcHkoYnVmLCBjbWQpOwogICAgLy8gVGhlICcm JyBwdXRzIHRhc2sgaW4gYmFja2dyb3VuZDsgdGhhdCB0YXNrJ3MgcGlkIGlzIGNhcHR1cmVk IGluIHBpZGZpbGUKICAgIHNwcmludGYocHRyLCAiICYgZWNobyAtbiAkISA+ICVzIiwgcGlk ZmlsZW5hbWUpOwoKICAgIC8vIENhbGwgQ3lnd2luJ3Mgc3lzdGVtKCkgd2l0aCBhdWdtZW50 ZWQgY29tbWFuZCBzdHJpbmcKI2lmIDEKICAgIGZwcmludGYoc3RkZXJyLCAiKlNZU1RFTSog Pj4lczw8XG4iLCBidWYpOwojZW5kaWYKICAgIGludCByZXQgPSBzeXN0ZW0oYnVmKTsKICAg IExlYXZlQ3JpdGljYWxTZWN0aW9uKCZzeXN0ZW1jcml0KTsKCiAgICAvLyBPcGVuIHBpZGZp bGUgaWRlbnRpZnlpbmcgc3Bhd25lZCB0YXNrIHRoZW4gcmVhZCBpdCwgY2xvc2UgaXQsIGRl bGV0ZSBpdAogICAgRklMRSAqZiA9IGZvcGVuKHBpZGZpbGVuYW1lLCAiciIpOwogICAgaWYg KCFmKQoJcmV0dXJuIC0xOyAvLyBiYWlsIGlmIHVuYWJsZSB0byBvcGVuIHBpZGZpbGUKICAg IGZyZWFkKGJ1ZiwgMSwgODAsIGYpOwogICAgZmNsb3NlKGYpOwogICAgcmVtb3ZlKHBpZGZp bGVuYW1lKTsKICAgIHBpZF90IHBpZCA9IGF0b2koYnVmKTsKCiAgICAvLyBQbGFuIEE6IHdh aXQoKSBmb3Igc3Bhd25lZCB0YXNrLiBEb2Vzbid0IHdvcmsgYXMgdGFzayBpcyBub3QgYSBj aGlsZC4KICAgIC8vIFBsYW4gQjogdXNlIGtpbGwocGlkLCAwKSB0byB0ZXN0IHBpZCBmb3Ig dmFsaWRpdHkuIFdvcmtzLCBidXQgdWdseS4KICAgIC8vIFBsYW4gQzogKFdpbmRvd3Mgb25s eSkgb3BlbiBhIGhhbmRsZSB0byB0YXNrIGFuZCBzeW5jIG9uIGl0LiBQZXJmZWN0LgogICAg RFdPUkQgd2lucGlkID0gY3lnd2luX2ludGVybmFsKENXX0NZR1dJTl9QSURfVE9fV0lOUElE LCBwaWQpOwogICAgSEFORExFIGggPSBPcGVuUHJvY2VzcyhTWU5DSFJPTklaRSwgRkFMU0Us IHdpbnBpZCk7CiAgICBpZiAoaCA9PSBJTlZBTElEX0hBTkRMRV9WQUxVRSkKCXJldHVybiAt MTsgLy8gYmFpbCBpZiB1bmFibGUgdG8gb3BlbiBzcGF3bmVkIHRhc2svcHJvY2VzcwogICAg V2FpdEZvclNpbmdsZU9iamVjdChoLCBJTkZJTklURSk7CiAgICBDbG9zZUhhbmRsZShoKTsK CiAgICByZXR1cm4gcmV0Owp9CgojZWxzZQoKaW50CnNhZmVfc3lzdGVtKGNvbnN0IGNoYXIg KmNtZCkKewogICAgcmV0dXJuIHN5c3RlbShjbWQpOwp9CgojZW5kaWYK --------------tNy2LG7mIwb5hV8xM91Pvhbc Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline -- Problem reports: https://cygwin.com/problems.html FAQ: https://cygwin.com/faq/ Documentation: https://cygwin.com/docs.html Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple --------------tNy2LG7mIwb5hV8xM91Pvhbc--
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |