delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2019/02/23/07:55:06

X-Recipient: archive-cygwin AT delorie DOT com
DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id
:list-unsubscribe:list-subscribe:list-archive:list-post
:list-help:sender:mime-version:references:in-reply-to:from:date
:message-id:subject:to:content-type; q=dns; s=default; b=guv9/QK
2b0St+0+GImpuOZrIJrUAfPdWQYjfkoNZQQ2wBUMMu/tbB/TSJeJ34PG8sPbzxrZ
o81z4rZ5MrEPjeGXHOzPprIhD9hQsw+t9CvMBfk42fQoG2+rF6FIAAudHVMkNsRA
0K1QlXAWQW+wop2d74lDKxcfN/P1fFeSWZFQ=
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id
:list-unsubscribe:list-subscribe:list-archive:list-post
:list-help:sender:mime-version:references:in-reply-to:from:date
:message-id:subject:to:content-type; s=default; bh=vrvJlGDqu6daD
d2azh1ZfyKBa34=; b=m1xJNjvGbNzMz6NFZsmWs1Jz9JUqRs4GBp5FJefqQuWgE
ygx/aeQ3pRLIMzur+Rpz08Jy61wj8Lw15wJarqV9cuKYWTIgjyhntHGh9Iq3v7D6
/1njATXR2O0iMTxV/ynIyp9fo7I1oR+em9zba0Rc3kAdTU6J42OJccGaXeTpSs=
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com
Authentication-Results: sourceware.org; auth=none
X-Spam-SWARE-Status: No, score=-1.4 required=5.0 tests=BAYES_00,FREEMAIL_FROM,FROM_LOCAL_NOVOWEL,HK_RANDOM_ENVFROM,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=no version=3.3.2 spammy=Glyn, mutexes
X-HELO: mail-qt1-f181.google.com
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=fSM75GZaVUUDJVEyqKXAVl/wghf0dAT20UxkjxCaXF0=; b=RKVXXyPcdxCymzDRXSd289y3r0GaP2whzA98nNIfmXHgW39ZdE3zvt4xI4A4DIo0eC F39PJeuaKOhMbalTlRUoe1Mg1QACHTcXSVrCRZqJ6Fj6E/x2MjFxLLbmaaG0SzX6NSAP z2FFPxR74QRoUQcS7emW/bEZ0elwjJujVhdnI9qnLrTAZejvSZy5MF9XykfP/JtDqiE7 xUxX3/mURlUkbUhGXzT8nqt/l5SYWvB39UvVIAIgSCYXAAkPAQAER7Z8d6MSKuNpUldg jxHDFkQSm0M06cWe7X2tlQKcJsMe+XLornq8JojGIpkrCBhevJFIaZrsrSPpg1P2GNYY Vkxw==
MIME-Version: 1.0
References: <CAAoGPJzdYcCDB=J4ZdfDq1xwLYvZBmT1rC937xHjMd8vseZ-=A AT mail DOT gmail DOT com>
In-Reply-To: <CAAoGPJzdYcCDB=J4ZdfDq1xwLYvZBmT1rC937xHjMd8vseZ-=A@mail.gmail.com>
From: Doug Henderson <djndnbvg AT gmail DOT com>
Date: Sat, 23 Feb 2019 05:54:18 -0700
Message-ID: <CAJ1FpuNG7a2nrK0A90VKuT9dAe5pf+aRbJzr65=cgQMxQ8rsuQ@mail.gmail.com>
Subject: Re: problem with mmap and fork()
To: cygwin <cygwin AT cygwin DOT com>
X-IsSubscribed: yes

--00000000000066605b05828f35f7
Content-Type: text/plain; charset="UTF-8"

On Fri, 22 Feb 2019 at 17:01, Glyn Gowing <> wrote:
> I have a program (attached) that works correctly on my mac but does
> not work with Cygwin on Windows 10. I'm running the latest version of

> What happens in the buggy execution is that the child obtains a lock
> before the parent releases it. I'm using mmap and a pthread_mutex_t
> object along with fork(). Again, this exact code works correctly on my
> Mac running Mojave.

On further analysis, the call to
> pthread_mutexattr_setpshared(attr, PTHREAD_PROCESS_SHARED);
is failing. The error is EINVAL (22) Invalid argument.

This suggests that pthread mutexes cannot be shared between processes
by using shared memory in cygwin. I have not attempted to determine if
this is working as expected, or if this is a bug, or a limitation in
the Windows environment.

I have attached my files:
smtest2.c - my heavily modified version of OP's original.
smtest2.txt - output from running this version.showing error.
smtest3.c - my version which uses 2 pthreads in a single process
smtest3.txt - output from running this version, showing OP's expected results.

HTH
Doug

--00000000000066605b05828f35f7
Content-Type: text/plain; charset="US-ASCII"; name="smtest2.txt"
Content-Disposition: attachment; filename="smtest2.txt"
Content-Transfer-Encoding: base64
Content-ID: <f_jshheykw1>
X-Attachment-Id: f_jshheykw1

Z2NjIC1zdGQ9YzExIC1wdGhyZWFkIC1XYWxsIC1XZXh0cmEgLVdlcnJvciAt
byBzbXRlc3QyIHNtdGVzdDIuYyAmJiAuL3NtdGVzdDIKMjIgSW52YWxpZCBh
cmd1bWVudApwdGhyZWFkX211dGV4YXR0cl9zZXRwc2hhcmVkOiBObyBlcnJv
cgptYWtlOiAqKiogW01ha2VmaWxlOjMwOiBzbXRlc3QyXSBFcnJvciAxCg==

--00000000000066605b05828f35f7
Content-Type: application/octet-stream; name="smtest3.c"
Content-Disposition: attachment; filename="smtest3.c"
Content-Transfer-Encoding: base64
Content-ID: <f_jshheyl42>
X-Attachment-Id: f_jshheyl42

Ly8gc210ZXN0Mi5jDQovLw0KLy8gRHIuIEdseW4gR293aW5nDQovLyBMZVRv
dXJuZWF1IFVuaXZlcnNpdHkNCi8vIENPU0MgNDY1MyAtIEFkdmFuY2VkIE5l
dHdvcmtzDQovLw0KLy8gVGhpcyBwcm9ncmFtIGRlbW9uc3RyYXRlcyBob3cg
dG8gdXNlIGEgbG9jayB3aXRoIGZvcmsoKWVkIHByb2Nlc3NlcyBieSB1c2lu
Zw0KLy8gc2hhcmVkIG1lbW9yeS4NCi8vDQovLyBoZWF2aWx5IG1vZGlmaWVk
IGJ5IERvdWcgSGVuZGVyc29uDQoNCiNpbmNsdWRlIDxzdGRpby5oPiAgICAg
ICAgIC8vIG5lZWRlZCBmb3IgcHJpbnRmDQojaW5jbHVkZSA8c3RkbGliLmg+
ICAgICAgICAgLy8gbmVlZGVkIGZvciBleGl0DQojaW5jbHVkZSA8c3RyaW5n
Lmg+ICAgICAgICAgLy8gbmVlZGVkIGZvciBzdHJlcnJvcg0KI2luY2x1ZGUg
PHRpbWUuaD4gICAgICAgICAgLy8gbmVlZGVkIGZvciB0aW1lDQojaW5jbHVk
ZSA8c3lzL21tYW4uaD4gICAgICAvLyBuZWVkZWQgZm9yIG1tYXANCiNpbmNs
dWRlIDx1bmlzdGQuaD4gICAgICAgIC8vIG5lZWRlZCBmb3IgZm9yaw0KI2lu
Y2x1ZGUgPHB0aHJlYWQuaD4gICAgICAgLy8gbmVlZGVkIGZvciB0aGUgbXV0
ZXggYW5kIHRoZSBtdXRleGF0dHIgc3RydWN0cyBhbmQgZnVuY3Rpb25zDQoN
Cg0KLy8gdGhpcyBjcmVhdGVfc2hhcmVkX21lbW9yeSBmdW5jdGlvbiB3YXMg
Zm91bmQgb24gc3RhY2sgZXhjaGFuZ2UuDQp2b2lkKiBjcmVhdGVfc2hhcmVk
X21lbW9yeShzaXplX3Qgc2l6ZSkNCnsNCgkvLyBPdXIgbWVtb3J5IGJ1ZmZl
ciB3aWxsIGJlIHJlYWRhYmxlIGFuZCB3cml0YWJsZToNCglpbnQgcHJvdGVj
dGlvbiA9IFBST1RfUkVBRCB8IFBST1RfV1JJVEU7DQoNCgkvLyBUaGUgYnVm
ZmVyIHdpbGwgYmUgc2hhcmVkIChtZWFuaW5nIG90aGVyIHByb2Nlc3NlcyBj
YW4gYWNjZXNzIGl0KSwgYnV0DQoJLy8gYW5vbnltb3VzIChtZWFuaW5nIHRo
aXJkLXBhcnR5IHByb2Nlc3NlcyBjYW5ub3Qgb2J0YWluIGFuIGFkZHJlc3Mg
Zm9yIGl0KSwNCgkvLyBzbyBvbmx5IHRoaXMgcHJvY2VzcyBhbmQgaXRzIGNo
aWxkcmVuIHdpbGwgYmUgYWJsZSB0byB1c2UgaXQ6DQoJaW50IHZpc2liaWxp
dHkgPSBNQVBfQU5PTllNT1VTIHwgTUFQX1NIQVJFRDsNCg0KCS8vIFRoZSBy
ZW1haW5pbmcgcGFyYW1ldGVycyB0byBgbW1hcCgpYCBhcmUgbm90IGltcG9y
dGFudCBmb3IgdGhpcyB1c2UgY2FzZSwNCgkvLyBidXQgdGhlIG1hbnBhZ2Ug
Zm9yIGBtbWFwYCBleHBsYWlucyB0aGVpciBwdXJwb3NlLg0KCXJldHVybiBt
bWFwKE5VTEwsIHNpemUsIHByb3RlY3Rpb24sIHZpc2liaWxpdHksIDAsIDAp
Ow0KfQ0KLy8gZW5kIGJvcnJvd2VkIGNvZGUNCg0Kdm9pZCAqY2hpbGRfcm91
dGluZSh2b2lkICpfbG9jaykNCnsNCglwdGhyZWFkX211dGV4X3QgKmxvY2sg
PSAocHRocmVhZF9tdXRleF90ICopX2xvY2s7DQoJaW50IGVycjsNCg0KCXBy
aW50ZigiJWxkIC0gQ2hpbGQgOiBjaGVja2luZyAgbG9jayAoJTExcCkgLSBC
ZWZvcmUgc2xlZXBpbmcgNSBzZWNvbmRzLlxuIiwgdGltZShOVUxMKSwgKHZv
aWQgKikoKmxvY2spKTsNCgkvLyBzbGVlcCA1IHNlY29uZHMgdG8gZ2l2ZSBw
YXJlbnQgYSBjaGFuY2UgdG8gYWNxdWlyZSBsb2NrDQoJc2xlZXAoNSk7DQoJ
Ly8gdHJ5IHRvIGFjcXVpcmUgbG9jay4gVGhpcyB3aWxsIGJsb2NrIHVudGls
IGxvY2sgaXMgYWNxdWlyZWQNCglwcmludGYoIiVsZCAtIENoaWxkIDogYWNx
dWlyaW5nIGxvY2sgKCUxMXApIC0gQWZ0ZXIgIHNsZWVwaW5nIDUgc2Vjb25k
cy5cbiIsIHRpbWUoTlVMTCksICh2b2lkICopKCpsb2NrKSk7DQoJZXJyID0g
cHRocmVhZF9tdXRleF9sb2NrKGxvY2spOw0KCWlmIChlcnIgIT0gMCkgew0K
CQlwcmludGYoIiVsZCAtIENoaWxkIDogcHRocmVhZF9tdXRleF9sb2NrIGVy
cm9yOiAlZCAlc1xuIiwgdGltZShOVUxMKSwgZXJyLCBzdHJlcnJvcihlcnIp
KTsNCgkJZXhpdChlcnIpOw0KCX0NCg0KCXByaW50ZigiJWxkIC0gQ2hpbGQg
OiBhY3F1aXJlZCAgbG9jayAoJTExcCkgLSBCZWZvcmUgc2xlZXBpbmcgMyBz
ZWNvbmRzLlxuIiwgdGltZShOVUxMKSwgKHZvaWQgKikoKmxvY2spKTsNCglz
bGVlcCgzKTsNCgkvLyByZWxlYXNlIGxvY2sgYWZ0ZXIgYWNxdWlyaW5nIGl0
DQoJcHJpbnRmKCIlbGQgLSBDaGlsZCA6IHVubG9ja2luZyBsb2NrICglMTFw
KSAtIEFmdGVyIHNsZWVwaW5nIDMgc2Vjb25kcy5cbiIsIHRpbWUoTlVMTCks
ICh2b2lkICopKCogbG9jaykpOw0KCWVyciA9IHB0aHJlYWRfbXV0ZXhfdW5s
b2NrKGxvY2spOw0KCWlmIChlcnIgIT0gMCkgew0KCQlwcmludGYoIiVsZCAt
IENoaWxkIDogcHRocmVhZF9tdXRleF91bmxvY2sgZXJyb3I6ICVkICVzXG4i
LCB0aW1lKE5VTEwpLCBlcnIsIHN0cmVycm9yKGVycikpOw0KCQlleGl0KGVy
cik7DQoJfQ0KDQoJcHJpbnRmKCIlbGQgLSBDaGlsZCA6IHVubG9ja2VkICBs
b2NrICglMTFwKS5cbiIsIHRpbWUoTlVMTCksICh2b2lkICopKCogbG9jaykp
Ow0KCXJldHVybiAodm9pZCopTlVMTDsNCn0NCg0Kdm9pZCAqcGFyZW50X3Jv
dXRpbmUodm9pZCAqX2xvY2spDQp7DQoJcHRocmVhZF9tdXRleF90ICpsb2Nr
ID0gKHB0aHJlYWRfbXV0ZXhfdCAqKV9sb2NrOw0KCWludCBlcnI7DQoNCgkv
LyBhY3F1aXJlIGxvY2sgaW1tZWRpYXRlbHkgdG8gZm9yY2UgY2hpbGQgdG8g
YmxvY2sNCglwcmludGYoIiVsZCAtIFBhcmVudDogYWNxdWlyaW5nIGxvY2sg
KCUxMXApXG4iLCB0aW1lKE5VTEwpLCAodm9pZCAqKSgqIGxvY2spKTsNCgll
cnIgPSBwdGhyZWFkX211dGV4X2xvY2sobG9jayk7DQoJaWYgKGVyciAhPSAw
KSB7DQoJCXByaW50ZigiJWxkIC0gUGFyZW50OiBwdGhyZWFkX211dGV4X2xv
Y2sgZXJyb3I6ICVkICVzXG4iLCB0aW1lKE5VTEwpLCBlcnIsIHN0cmVycm9y
KGVycikpOw0KCQlleGl0KGVycik7DQoJfQ0KDQoJcHJpbnRmKCIlbGQgLSBQ
YXJlbnQ6IGFjcXVpcmVkICBsb2NrICglMTFwKSAtIEJlZm9yZSBzbGVlcGlu
ZyAxMCBzZWNvbmRzLlxuIiwgdGltZShOVUxMKSwgKHZvaWQgKikoKiBsb2Nr
KSk7DQoJc2xlZXAoMTApOw0KCS8vIHJlbGVhc2UgbG9jayB0byBnaXZlIGNo
aWxkIGEgY2hhbmNlDQoJcHJpbnRmKCIlbGQgLSBQYXJlbnQ6IHVubG9ja2lu
ZyBsb2NrICglMTFwKSAtIEFmdGVyIHNsZWVwaW5nIDEwIHNlY29uZHMuXG4i
LCB0aW1lKE5VTEwpLCAodm9pZCAqKSgqIGxvY2spKTsNCgllcnIgPSBwdGhy
ZWFkX211dGV4X3VubG9jayhsb2NrKTsNCglpZiAoZXJyICE9IDApIHsNCgkJ
cHJpbnRmKCIlbGQgLSBQYXJlbnQ6IHB0aHJlYWRfbXV0ZXhfdW5sb2NrIGVy
cm9yOiAlZCAlc1xuIiwgdGltZShOVUxMKSwgZXJyLCBzdHJlcnJvcihlcnIp
KTsNCgkJZXhpdChlcnIpOw0KCX0NCg0KCXByaW50ZigiJWxkIC0gUGFyZW50
OiB1bmxvY2tlZCAgbG9jayAoJTExcCkgLSBCZWZvcmUgc2xlZXBpbmcgNSBz
ZWNvbmRzIHRvIGxldCBjaGlsZCBjYXRjaCB1cC5cbiIsIHRpbWUoTlVMTCks
ICh2b2lkICopKCogbG9jaykpOw0KCXNsZWVwKDUpOw0KCXByaW50ZigiJWxk
IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gQWZ0
ZXIgIHNsZWVwaW5nIDUgc2Vjb25kcyB0byBsZXQgY2hpbGQgY2F0Y2ggdXAu
XG4iLCB0aW1lKE5VTEwpKTsNCglyZXR1cm4gKHZvaWQqKU5VTEw7DQp9DQoN
CmludCBtYWluKCkNCnsNCglpbnQgZXJyOw0KDQoJLy8gY3JlYXRlIG11dGV4
IGFuZCBtdXRleGF0dHIgc3RydWN0cyBzbyB3ZSBjYW4gY3JlYXRlIHRoZSBt
dXRleA0KCS8vIHRoZXNlIGFyZSBjcmVhdGVkIGFzIHNoYXJlZCBtZW1vcnkg
c28gdGhleSBjYW4gYmUgYWNjZXNzZWQgYnkgYm90aCBwcm9jZXNzZXMNCglw
dGhyZWFkX211dGV4X3QgKmxvY2sgPSAocHRocmVhZF9tdXRleF90ICopbWFs
bG9jKHNpemVvZihwdGhyZWFkX211dGV4X3QpKTsNCglwdGhyZWFkX211dGV4
YXR0cl90ICphdHRyID0gKHB0aHJlYWRfbXV0ZXhhdHRyX3QgKiltYWxsb2Mo
c2l6ZW9mKHB0aHJlYWRfbXV0ZXhhdHRyX3QpKTsNCg0KCS8vIGluaXRpYWxp
emUgdGhlIG11dGV4YXR0ciBzdHJ1Y3QNCgllcnIgPSBwdGhyZWFkX211dGV4
YXR0cl9pbml0KGF0dHIpOw0KCWlmIChlcnIpIHsNCgkJcGVycm9yKCJwdGhy
ZWFkX211dGV4YXR0cl9pbml0Iik7DQoJCWV4aXQoRVhJVF9GQUlMVVJFKTsN
Cgl9DQoNCgkvLy8vIHNldCBpdCBzbyBpdCBjYW4gYmUgc2hhcmVkIGJldHdl
ZW4gcHJvY2Vzc2VzDQoJLy8vLyB3aXRob3V0IHRoaXMsIHRoZSBjaGlsZCB3
aWxsIG5vdCBiZSBhYmxlIHRvIGFjcXVpcmUgdGhlIGxvY2sgZXZlbiBpZiBp
dCBpcw0KCS8vLy8gaW4gc2hhcmVkIG1lbW9yeS4NCgkvL2VyciA9IHB0aHJl
YWRfbXV0ZXhhdHRyX3NldHBzaGFyZWQoYXR0ciwgUFRIUkVBRF9QUk9DRVNT
X1NIQVJFRCk7DQoJLy9pZiAoZXJyKSB7DQoJCS8vZnByaW50ZihzdGRlcnIs
ICIlZCAlc1xuIiwgZXJyLCBzdHJlcnJvcihlcnIpKTsNCgkJLy9wZXJyb3Io
InB0aHJlYWRfbXV0ZXhhdHRyX3NldHBzaGFyZWQiKTsNCgkJLy9leGl0KEVY
SVRfRkFJTFVSRSk7DQoJLy99DQoNCgkvLyBpbml0aWFsaXplIHRoZSBtdXRl
eCBpdHNlbGYsIHVzaW5nIHRoZSBhdHRyaWJ1dGVzIHdlIGp1c3QgY3JlYXRl
ZA0KCWVyciA9IHB0aHJlYWRfbXV0ZXhfaW5pdChsb2NrLCBhdHRyKTsNCglp
ZiAoZXJyKSB7DQoJCXByaW50ZigiJWxkIC0gYm90aDogcHRocmVhZF9tdXRl
eF9pbml0IGVycm9yOiAlZCAlc1xuIiwgdGltZShOVUxMKSwgZXJyLCBzdHJl
cnJvcihlcnIpKTsNCgkJZXhpdChlcnIpOw0KCSB9DQoJcHJpbnRmKCIlbGQg
LSBib3RoICA6IGF0dHIsIGxvY2ssIGxvY2stPm5leHQ6ICUxMXAgJTExcCAl
MTFwXG4iLCB0aW1lKE5VTEwpLCAodm9pZCAqKWF0dHIsICh2b2lkICopbG9j
aywgKHZvaWQgKikoKmxvY2spKTsNCg0KCXB0aHJlYWRfdCBjaGlsZF90aHJl
YWQsIHBhcmVudF90aHJlYWQ7DQoNCgllcnIgPSBwdGhyZWFkX2NyZWF0ZSgm
Y2hpbGRfdGhyZWFkLCBOVUxMLCAodm9pZCAqKSZjaGlsZF9yb3V0aW5lLCAo
dm9pZCAqKSBsb2NrKTsNCglpZiAoZXJyKSB7DQoJCXBlcnJvcigicHRocmVh
ZF9jcmVhdGUgY2hpbGQiKTsNCgkJZXhpdChFWElUX0ZBSUxVUkUpOw0KCX0N
CgllcnIgPSBwdGhyZWFkX2NyZWF0ZSgmcGFyZW50X3RocmVhZCwgTlVMTCwg
KHZvaWQgKikmcGFyZW50X3JvdXRpbmUsICh2b2lkICopIGxvY2spOw0KCWlm
IChlcnIpIHsNCgkJcGVycm9yKCJwdGhyZWFkX2NyZWF0ZSBwYXJlbnQiKTsN
CgkJZXhpdChFWElUX0ZBSUxVUkUpOw0KCX0NCg0KCWVyciA9IHB0aHJlYWRf
am9pbiggY2hpbGRfdGhyZWFkLCBOVUxMKTsNCglpZiAoZXJyKSB7DQoJCXBl
cnJvcigicHRocmVhZF9qb2luIGNoaWxkIik7DQoJCWV4aXQoRVhJVF9GQUlM
VVJFKTsNCgl9DQoJZXJyID0gcHRocmVhZF9qb2luKCBwYXJlbnRfdGhyZWFk
LCBOVUxMKTsNCglpZiAoZXJyKSB7DQoJCXBlcnJvcigicHRocmVhZF9qb2lu
IHBhcmVudCIpOw0KCQlleGl0KEVYSVRfRkFJTFVSRSk7DQoJfQ0KDQoJLy8g
bW1hcCdlZCBtZW1vcnkgaXMgYXV0b21hdGljYWxseSB1bm1hcHBlZCB3aGVu
IHRoZSBwcm9jZXNzIGVuZHMuDQoJcmV0dXJuIDA7DQp9DQo=

--00000000000066605b05828f35f7
Content-Type: text/plain; charset="US-ASCII"; name="smtest3.txt"
Content-Disposition: attachment; filename="smtest3.txt"
Content-Transfer-Encoding: base64
Content-ID: <f_jshheyl83>
X-Attachment-Id: f_jshheyl83

Z2NjIC1zdGQ9YzExIC1wdGhyZWFkIC1XYWxsIC1XZXh0cmEgLVdlcnJvciAt
byBzbXRlc3QzIHNtdGVzdDMuYyAmJiAuL3NtdGVzdDMKMTU1MDkyNTg2NiAt
IGJvdGggIDogYXR0ciwgbG9jaywgbG9jay0+bmV4dDogMHg2MDAwMDA0MzAg
MHg2MDAwMDA0MTAgMHg2MDAwMDA0NzAKMTU1MDkyNTg2NiAtIENoaWxkIDog
Y2hlY2tpbmcgIGxvY2sgKDB4NjAwMDAwNDcwKSAtIEJlZm9yZSBzbGVlcGlu
ZyA1IHNlY29uZHMuCjE1NTA5MjU4NjYgLSBQYXJlbnQ6IGFjcXVpcmluZyBs
b2NrICgweDYwMDAwMDQ3MCkKMTU1MDkyNTg2NiAtIFBhcmVudDogYWNxdWly
ZWQgIGxvY2sgKDB4NjAwMDAwNDcwKSAtIEJlZm9yZSBzbGVlcGluZyAxMCBz
ZWNvbmRzLgoxNTUwOTI1ODcxIC0gQ2hpbGQgOiBhY3F1aXJpbmcgbG9jayAo
MHg2MDAwMDA0NzApIC0gQWZ0ZXIgIHNsZWVwaW5nIDUgc2Vjb25kcy4KMTU1
MDkyNTg3NiAtIFBhcmVudDogdW5sb2NraW5nIGxvY2sgKDB4NjAwMDAwNDcw
KSAtIEFmdGVyIHNsZWVwaW5nIDEwIHNlY29uZHMuCjE1NTA5MjU4NzYgLSBQ
YXJlbnQ6IHVubG9ja2VkICBsb2NrICgweDYwMDAwMDQ3MCkgLSBCZWZvcmUg
c2xlZXBpbmcgNSBzZWNvbmRzIHRvIGxldCBjaGlsZCBjYXRjaCB1cC4KMTU1
MDkyNTg3NiAtIENoaWxkIDogYWNxdWlyZWQgIGxvY2sgKDB4NjAwMDAwNDcw
KSAtIEJlZm9yZSBzbGVlcGluZyAzIHNlY29uZHMuCjE1NTA5MjU4NzkgLSBD
aGlsZCA6IHVubG9ja2luZyBsb2NrICgweDYwMDAwMDQ3MCkgLSBBZnRlciBz
bGVlcGluZyAzIHNlY29uZHMuCjE1NTA5MjU4NzkgLSBDaGlsZCA6IHVubG9j
a2VkICBsb2NrICgweDYwMDAwMDQ3MCkuCjE1NTA5MjU4ODEgLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSBBZnRlciAgc2xlZXBp
bmcgNSBzZWNvbmRzIHRvIGxldCBjaGlsZCBjYXRjaCB1cC4K

--00000000000066605b05828f35f7
Content-Type: application/octet-stream; name="smtest2.c"
Content-Disposition: attachment; filename="smtest2.c"
Content-Transfer-Encoding: base64
Content-ID: <f_jshheyki0>
X-Attachment-Id: f_jshheyki0

Ly8gc210ZXN0Mi5jDQovLw0KLy8gRHIuIEdseW4gR293aW5nDQovLyBMZVRv
dXJuZWF1IFVuaXZlcnNpdHkNCi8vIENPU0MgNDY1MyAtIEFkdmFuY2VkIE5l
dHdvcmtzDQovLw0KLy8gVGhpcyBwcm9ncmFtIGRlbW9uc3RyYXRlcyBob3cg
dG8gdXNlIGEgbG9jayB3aXRoIGZvcmsoKWVkIHByb2Nlc3NlcyBieSB1c2lu
Zw0KLy8gc2hhcmVkIG1lbW9yeS4NCg0KI2luY2x1ZGUgPHN0ZGlvLmg+ICAg
ICAgICAgLy8gbmVlZGVkIGZvciBwcmludGYNCiNpbmNsdWRlIDxzdGRsaWIu
aD4gICAgICAgICAvLyBuZWVkZWQgZm9yIGV4aXQgLy8gZGpoDQojaW5jbHVk
ZSA8c3RyaW5nLmg+ICAgICAgICAgLy8gbmVlZGVkIGZvciBzdHJlcnJvciAv
LyBkamgNCiNpbmNsdWRlIDx0aW1lLmg+ICAgICAgICAgIC8vIG5lZWRlZCBm
b3IgdGltZSAvLyBkamgNCiNpbmNsdWRlIDxzeXMvbW1hbi5oPiAgICAgIC8v
IG5lZWRlZCBmb3IgbW1hcA0KI2luY2x1ZGUgPHVuaXN0ZC5oPiAgICAgICAg
Ly8gbmVlZGVkIGZvciBmb3JrDQojaW5jbHVkZSA8cHRocmVhZC5oPiAgICAg
ICAvLyBuZWVkZWQgZm9yIHRoZSBtdXRleCBhbmQgdGhlIG11dGV4YXR0ciBz
dHJ1Y3RzIGFuZCBmdW5jdGlvbnMNCg0KDQovLyB0aGlzIGNyZWF0ZV9zaGFy
ZWRfbWVtb3J5IGZ1bmN0aW9uIHdhcyBmb3VuZCBvbiBzdGFjayBleGNoYW5n
ZS4NCnZvaWQqIGNyZWF0ZV9zaGFyZWRfbWVtb3J5KHNpemVfdCBzaXplKQ0K
ew0KCS8vIE91ciBtZW1vcnkgYnVmZmVyIHdpbGwgYmUgcmVhZGFibGUgYW5k
IHdyaXRhYmxlOg0KCWludCBwcm90ZWN0aW9uID0gUFJPVF9SRUFEIHwgUFJP
VF9XUklURTsNCg0KCS8vIFRoZSBidWZmZXIgd2lsbCBiZSBzaGFyZWQgKG1l
YW5pbmcgb3RoZXIgcHJvY2Vzc2VzIGNhbiBhY2Nlc3MgaXQpLCBidXQNCgkv
LyBhbm9ueW1vdXMgKG1lYW5pbmcgdGhpcmQtcGFydHkgcHJvY2Vzc2VzIGNh
bm5vdCBvYnRhaW4gYW4gYWRkcmVzcyBmb3IgaXQpLA0KCS8vIHNvIG9ubHkg
dGhpcyBwcm9jZXNzIGFuZCBpdHMgY2hpbGRyZW4gd2lsbCBiZSBhYmxlIHRv
IHVzZSBpdDoNCglpbnQgdmlzaWJpbGl0eSA9IE1BUF9BTk9OWU1PVVMgfCBN
QVBfU0hBUkVEOw0KDQoJLy8gVGhlIHJlbWFpbmluZyBwYXJhbWV0ZXJzIHRv
IGBtbWFwKClgIGFyZSBub3QgaW1wb3J0YW50IGZvciB0aGlzIHVzZSBjYXNl
LA0KCS8vIGJ1dCB0aGUgbWFucGFnZSBmb3IgYG1tYXBgIGV4cGxhaW5zIHRo
ZWlyIHB1cnBvc2UuDQoJcmV0dXJuIG1tYXAoTlVMTCwgc2l6ZSwgcHJvdGVj
dGlvbiwgdmlzaWJpbGl0eSwgMCwgMCk7DQp9DQovLyBlbmQgYm9ycm93ZWQg
Y29kZQ0KDQp2b2lkICpjaGlsZF9yb3V0aW5lKHZvaWQgKl9sb2NrKQ0Kew0K
CXB0aHJlYWRfbXV0ZXhfdCAqbG9jayA9IChwdGhyZWFkX211dGV4X3QgKilf
bG9jazsNCglpbnQgZXJyOyAvLyBkamgNCglwcmludGYoIiVsZCAtIENoaWxk
IDogY2hlY2tpbmcgIGxvY2sgKCUxMXApIC0gQmVmb3JlIHNsZWVwaW5nIDUg
c2Vjb25kcy5cbiIsIHRpbWUoTlVMTCksICh2b2lkICopKCpsb2NrKSk7DQoJ
Ly8gc2xlZXAgNSBzZWNvbmRzIHRvIGdpdmUgcGFyZW50IGEgY2hhbmNlIHRv
IGFjcXVpcmUgbG9jaw0KCXNsZWVwKDUpOw0KCS8vIHRyeSB0byBhY3F1aXJl
IGxvY2suIFRoaXMgd2lsbCBibG9jayB1bnRpbCBsb2NrIGlzIGFjcXVpcmVk
DQoJcHJpbnRmKCIlbGQgLSBDaGlsZCA6IGFjcXVpcmluZyBsb2NrICglMTFw
KSAtIEFmdGVyICBzbGVlcGluZyA1IHNlY29uZHMuXG4iLCB0aW1lKE5VTEwp
LCAodm9pZCAqKSgqbG9jaykpOw0KCWVyciA9IHB0aHJlYWRfbXV0ZXhfbG9j
ayhsb2NrKTsNCglpZiAoZXJyICE9IDApIHsNCgkJcHJpbnRmKCIlbGQgLSBD
aGlsZCA6IHB0aHJlYWRfbXV0ZXhfbG9jayBlcnJvcjogJWQgJXNcbiIsIHRp
bWUoTlVMTCksIGVyciwgc3RyZXJyb3IoZXJyKSk7IC8vIGRqaA0KCQlleGl0
KGVycik7DQoJfQ0KCXByaW50ZigiJWxkIC0gQ2hpbGQgOiBhY3F1aXJlZCAg
bG9jayAoJTExcCkgLSBCZWZvcmUgc2xlZXBpbmcgMyBzZWNvbmRzLlxuIiwg
dGltZShOVUxMKSwgKHZvaWQgKikoKmxvY2spKTsNCglzbGVlcCgzKTsNCgkv
LyByZWxlYXNlIGxvY2sgYWZ0ZXIgYWNxdWlyaW5nIGl0DQoJcHJpbnRmKCIl
bGQgLSBDaGlsZCA6IHVubG9ja2luZyBsb2NrICglMTFwKSAtIEFmdGVyIHNs
ZWVwaW5nIDMgc2Vjb25kcy5cbiIsIHRpbWUoTlVMTCksICh2b2lkICopKCog
bG9jaykpOw0KCWVyciA9IHB0aHJlYWRfbXV0ZXhfdW5sb2NrKGxvY2spOw0K
CWlmIChlcnIgIT0gMCkgew0KCQlwcmludGYoIiVsZCAtIENoaWxkIDogcHRo
cmVhZF9tdXRleF91bmxvY2sgZXJyb3I6ICVkICVzXG4iLCB0aW1lKE5VTEwp
LCBlcnIsIHN0cmVycm9yKGVycikpOyAvLyBkamgNCgkJZXhpdChlcnIpOw0K
CX0NCglwcmludGYoIiVsZCAtIENoaWxkIDogdW5sb2NrZWQgIGxvY2sgKCUx
MXApLlxuIiwgdGltZShOVUxMKSwgKHZvaWQgKikoKiBsb2NrKSk7DQoJcmV0
dXJuICh2b2lkKilOVUxMOw0KfQ0KDQp2b2lkICpwYXJlbnRfcm91dGluZSh2
b2lkICpfbG9jaykNCnsNCglwdGhyZWFkX211dGV4X3QgKmxvY2sgPSAocHRo
cmVhZF9tdXRleF90ICopX2xvY2s7DQoJaW50IGVycjsgLy8gZGpoDQoJLy8g
YWNxdWlyZSBsb2NrIGltbWVkaWF0ZWx5IHRvIGZvcmNlIGNoaWxkIHRvIGJs
b2NrDQoJcHJpbnRmKCIlbGQgLSBQYXJlbnQ6IGFjcXVpcmluZyBsb2NrICgl
MTFwKVxuIiwgdGltZShOVUxMKSwgKHZvaWQgKikoKiBsb2NrKSk7DQoJZXJy
ID0gcHRocmVhZF9tdXRleF9sb2NrKGxvY2spOw0KCWlmIChlcnIgIT0gMCkg
ew0KCQlwcmludGYoIiVsZCAtIFBhcmVudDogcHRocmVhZF9tdXRleF9sb2Nr
IGVycm9yOiAlZCAlc1xuIiwgdGltZShOVUxMKSwgZXJyLCBzdHJlcnJvcihl
cnIpKTsgLy8gZGpoDQoJCWV4aXQoZXJyKTsNCgl9DQoJcHJpbnRmKCIlbGQg
LSBQYXJlbnQ6IGFjcXVpcmVkICBsb2NrICglMTFwKSAtIEJlZm9yZSBzbGVl
cGluZyAxMCBzZWNvbmRzLlxuIiwgdGltZShOVUxMKSwgKHZvaWQgKikoKiBs
b2NrKSk7DQoJc2xlZXAoMTApOw0KCS8vIHJlbGVhc2UgbG9jayB0byBnaXZl
IGNoaWxkIGEgY2hhbmNlDQoJcHJpbnRmKCIlbGQgLSBQYXJlbnQ6IHVubG9j
a2luZyBsb2NrICglMTFwKSAtIEFmdGVyIHNsZWVwaW5nIDEwIHNlY29uZHMu
XG4iLCB0aW1lKE5VTEwpLCAodm9pZCAqKSgqIGxvY2spKTsNCgllcnIgPSBw
dGhyZWFkX211dGV4X3VubG9jayhsb2NrKTsNCglpZiAoZXJyICE9IDApIHsN
CgkJcHJpbnRmKCIlbGQgLSBQYXJlbnQ6IHB0aHJlYWRfbXV0ZXhfdW5sb2Nr
IGVycm9yOiAlZCAlc1xuIiwgdGltZShOVUxMKSwgZXJyLCBzdHJlcnJvcihl
cnIpKTsgLy8gZGpoDQoJCWV4aXQoZXJyKTsNCgl9DQoJcHJpbnRmKCIlbGQg
LSBQYXJlbnQ6IHVubG9ja2VkICBsb2NrICglMTFwKSAtIEJlZm9yZSBzbGVl
cGluZyA1IHNlY29uZHMgdG8gbGV0IGNoaWxkIGNhdGNoIHVwLlxuIiwgdGlt
ZShOVUxMKSwgKHZvaWQgKikoKiBsb2NrKSk7DQoJc2xlZXAoNSk7DQoJcHJp
bnRmKCIlbGQgLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLSBBZnRlciAgc2xlZXBpbmcgNSBzZWNvbmRzIHRvIGxldCBjaGlsZCBj
YXRjaCB1cC5cbiIsIHRpbWUoTlVMTCkpOw0KCXJldHVybiAodm9pZCopTlVM
TDsNCn0NCg0KaW50IG1haW4oKQ0Kew0KCWludCBlcnI7DQoNCgkvLyBjcmVh
dGUgbXV0ZXggYW5kIG11dGV4YXR0ciBzdHJ1Y3RzIHNvIHdlIGNhbiBjcmVh
dGUgdGhlIG11dGV4DQoJLy8gdGhlc2UgYXJlIGNyZWF0ZWQgYXMgc2hhcmVk
IG1lbW9yeSBzbyB0aGV5IGNhbiBiZSBhY2Nlc3NlZCBieSBib3RoIHByb2Nl
c3Nlcw0KCXB0aHJlYWRfbXV0ZXhfdCAqbG9jayA9IChwdGhyZWFkX211dGV4
X3QgKiljcmVhdGVfc2hhcmVkX21lbW9yeShzaXplb2YocHRocmVhZF9tdXRl
eF90KSk7DQoJcHRocmVhZF9tdXRleGF0dHJfdCAqYXR0ciA9IChwdGhyZWFk
X211dGV4YXR0cl90ICopY3JlYXRlX3NoYXJlZF9tZW1vcnkoc2l6ZW9mKHB0
aHJlYWRfbXV0ZXhhdHRyX3QpKTsNCg0KCS8vIGluaXRpYWxpemUgdGhlIG11
dGV4YXR0ciBzdHJ1Y3QNCgllcnIgPSBwdGhyZWFkX211dGV4YXR0cl9pbml0
KGF0dHIpOw0KCWlmIChlcnIpIHsNCgkJcGVycm9yKCJwdGhyZWFkX211dGV4
YXR0cl9pbml0Iik7DQoJCWV4aXQoRVhJVF9GQUlMVVJFKTsNCgl9DQoNCgkv
LyBzZXQgaXQgc28gaXQgY2FuIGJlIHNoYXJlZCBiZXR3ZWVuIHByb2Nlc3Nl
cw0KCS8vIHdpdGhvdXQgdGhpcywgdGhlIGNoaWxkIHdpbGwgbm90IGJlIGFi
bGUgdG8gYWNxdWlyZSB0aGUgbG9jayBldmVuIGlmIGl0IGlzDQoJLy8gaW4g
c2hhcmVkIG1lbW9yeS4NCgllcnIgPSBwdGhyZWFkX211dGV4YXR0cl9zZXRw
c2hhcmVkKGF0dHIsIFBUSFJFQURfUFJPQ0VTU19TSEFSRUQpOw0KCWlmIChl
cnIpIHsNCgkJZnByaW50ZihzdGRlcnIsICIlZCAlc1xuIiwgZXJyLCBzdHJl
cnJvcihlcnIpKTsNCgkJcGVycm9yKCJwdGhyZWFkX211dGV4YXR0cl9zZXRw
c2hhcmVkIik7DQoJCWV4aXQoRVhJVF9GQUlMVVJFKTsNCgl9DQoNCgkvLyBp
bml0aWFsaXplIHRoZSBtdXRleCBpdHNlbGYsIHVzaW5nIHRoZSBhdHRyaWJ1
dGVzIHdlIGp1c3QgY3JlYXRlZA0KCWVyciA9IHB0aHJlYWRfbXV0ZXhfaW5p
dChsb2NrLCBhdHRyKTsNCglpZiAoZXJyICE9IDApIHsNCgkJcHJpbnRmKCIl
bGQgLSBib3RoOiBwdGhyZWFkX211dGV4X2luaXQgZXJyb3I6ICVkICVzXG4i
LCB0aW1lKE5VTEwpLCBlcnIsIHN0cmVycm9yKGVycikpOyAvLyBkamgNCgkJ
ZXhpdChlcnIpOw0KCSB9DQoJcHJpbnRmKCIlbGQgLSBib3RoICA6IGF0dHIs
IGxvY2ssIGxvY2stPm5leHQ6ICUxMXAgJTExcCAlMTFwXG4iLCB0aW1lKE5V
TEwpLCAodm9pZCAqKWF0dHIsICh2b2lkICopbG9jaywgKHZvaWQgKikoKmxv
Y2spKTsgLy8gZGpoDQoNCgkvLyBmb3JrKCkNCglpbnQgcGlkID0gZm9yaygp
Ow0KDQoJaWYgKHBpZCA9PSAwKSAgLy8gY2hpbGQNCgl7DQoJCWNoaWxkX3Jv
dXRpbmUobG9jayk7DQoJfQ0KCWVsc2UgIC8vIHBhcmVudA0KCXsNCgkJcGFy
ZW50X3JvdXRpbmUobG9jayk7DQoJfQ0KDQoJLy8gbW1hcCdlZCBtZW1vcnkg
aXMgYXV0b21hdGljYWxseSB1bm1hcHBlZCB3aGVuIHRoZSBwcm9jZXNzIGVu
ZHMuDQoJcmV0dXJuIDA7DQp9DQo=


--00000000000066605b05828f35f7
Content-Type: text/plain; charset=us-ascii


--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
--00000000000066605b05828f35f7--

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019