delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2004/02/29/23:34:03

Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sources.redhat.com/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sources.redhat.com/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
Subject: problem about SEMAPHORE at cygwin 1.5.7
To: cygwin AT cygwin DOT com
Message-ID: <OF6D065114.BD53B1C1-ON48256E4A.00194F4A@legend.com.cn>
From: xuzhd AT Lenovo DOT com
Date: Mon, 1 Mar 2004 12:36:57 +0800
MIME-Version: 1.0
Note-from-DJ: This may be spam

--0__=48256E4A00194F4A8f9e8a93df938690918c48256E4A00194F4A
Content-type: text/plain; charset=us-ascii



(See attached file: lcctestsem.c)

problem about SEMAPHORE  at cygwin 1.5.7

cygwin 1.5.7
cygserver as ipc server

a process has gotten semaphore using SEM_UNDO, when the  process aborts, it
should release corresponding semaphore at Linux.But at Cygwin 1.5.7,1.5.4,
1.3.22, I cannot prove it. is it a bug to cygwin ? thank you


the following is my program's result.




Administrator AT node1 ~
$ ./a.exe  ( the first running)
before Get semaphore exclusively...
         semval[0] = 8
after Get semaphore ...
         semval[0] = 7
before release semaphore exclusively...
         semval[0] = 7
before release semaphore exclusively...
         semval[0] = 8

Administrator AT node1 ~
$ ./a.exe                ( the second running, gets semaphore and releases
semaphore successfully)
Test semaphore has existed.
Get test semaphore...
         semval[0] = 8
Get test semaphore successfully.
before Get semaphore exclusively...
         semval[0] = 8
after Get semaphore ...
         semval[0] = 7
before release semaphore exclusively...
         semval[0] = 7
before release semaphore exclusively...
         semval[0] = 8

Administrator AT node1 ~
$ ./a.exe                ( the third running, gets semaphore
successfully,but fails to  release semaphore )
Test semaphore has existed.
Get test semaphore...
         semval[0] = 8
Get test semaphore successfully.
before Get semaphore exclusively...
         semval[0] = 8
after Get semaphore ...
         semval[0] = 7
before release semaphore exclusively...

Administrator AT node1 ~
$ ./a.exe           ( the fourth running, proves that the third running
didnot release semephore when aborting , a bug ????)
Test semaphore has existed.
Get test semaphore...
         semval[0] = 7
Get test semaphore successfully.
before Get semaphore exclusively...
         semval[0] = 7
after Get semaphore ...
         semval[0] = 6
before release semaphore exclusively...
         semval[0] = 6
before release semaphore exclusively...
         semval[0] = 7

Administrator AT node1 ~
$ */


--0__=48256E4A00194F4A8f9e8a93df938690918c48256E4A00194F4A
Content-type: application/octet-stream; 
	name="lcctestsem.c"
Content-Disposition: attachment; filename="lcctestsem.c"
Content-transfer-encoding: base64

I2luY2x1ZGUgPHN0ZGlvLmg+DQojaW5jbHVkZSA8ZXJybm8uaD4NCiNpbmNs
dWRlIDx1bmlzdGQuaD4NCg0KI2luY2x1ZGUgPG5ldC9pZi5oPg0KI2luY2x1
ZGUgPHN5cy9pcGMuaD4NCiNpbmNsdWRlIDxzeXMvc2VtLmg+DQoNCg0KI2Rl
ZmluZSBURVNUU0VNSUQJMTAwDQojZGVmaW5lCVNFTVNJWkUJCTENCg0KI2lm
IGRlZmluZWQoX19HTlVfTElCUkFSWV9fKSAmJiAhZGVmaW5lZChfU0VNX1NF
TVVOX1VOREVGSU5FRCkNCi8qIHVuaW9uIHNlbXVuIGlzIGRlZmluZWQgYnkg
aW5jbHVkaW5nIDxzeXMvc2VtLmg+ICovDQojZWxzZQ0KLyogYWNjb3JkaW5n
IHRvIFgvT1BFTiB3ZSBoYXZlIHRvIGRlZmluZSBpdCBvdXJzZWx2ZXMgKi8N
CnVuaW9uIHNlbXVuIHsNCiAgICAgICAgaW50MTZfdCB2YWw7ICAgICAgICAg
ICAgICAgICAgICAvKiB2YWx1ZSBmb3IgU0VUVkFMICovDQogICAgICAgIHN0
cnVjdCBzZW1pZF9kcyAqYnVmOyAgICAgICAvKiBidWZmZXIgZm9yIElQQ19T
VEFULCBJUENfU0VUICovDQogICAgICAgIHVuc2lnbmVkIHNob3J0IGludCAq
YXJyYXk7ICAvKiBhcnJheSBmb3IgR0VUQUxMLCBTRVRBTEwgKi8NCiAgICAg
ICAgc3RydWN0IHNlbWluZm8gKl9fYnVmOyAgICAgIC8qIGJ1ZmZlciBmb3Ig
SVBDX0lORk8gKi8NCn07DQojZW5kaWYNCg0KDQppbnQJdGVzdF9zZW1pZDsN
Cg0Kdm9pZCANCnRvX3Nob3coKXsNCg0KCXVuaW9uIAlzZW11biBhcmc7DQoJ
dW5zaWduZWQgc2hvcnQgaW50IGFsbHZhbFtTRU1TSVpFXTsNCglpbnQgaTsN
CgkNCglhcmcuYXJyYXkgPSBhbGx2YWw7DQoNCglpZiAoc2VtY3RsKHRlc3Rf
c2VtaWQsIDAgLCBHRVRBTEwsIGFyZykgPCAwKSB7DQogICAgICAgICAgICBw
cmludGYoInNlbWN0bCBmYWlsZWQgZm9yWyVzXS5cbiIsIHN0cmVycm9yKGVy
cm5vKSk7DQogICAgICAgICAgICByZXR1cm4gOw0KCX0NCg0KCWZvciggaT0w
OyBpIDwgU0VNU0laRTsgaSsrKQ0KCQlwcmludGYoIlx0IHNlbXZhbFslZF0g
PSAlZCBcbiIsIGkgLCBhbGx2YWxbaV0pOw0KCXJldHVybjsgDQp9DQoNCmlu
dA0KY3JlYXRlX3Rlc3Rfc2VtYXBob3JlKHZvaWQpDQp7DQoJCWludCAgICAg
a2V5LCBpOw0KICAgICAgICBjaGFyICAgIGZuWzEwMF07DQoJCXVuaW9uIAlz
ZW11biBhcmc7DQoJCXVuc2lnbmVkIHNob3J0IGludCBhbGx2YWxbU0VNU0la
RV07DQoNCiAgICAgICAgc3ByaW50ZihmbiwgIi4iKTsNCiAgICAgICAgaWYg
KChrZXkgPSBmdG9rKGZuLCBURVNUU0VNSUQpKSA8IDApIHsNCiAgICAgICAg
ICAgICAgICBwcmludGYoImZ0b2sgZmFpbGVkIGZvclslc10uXG4iLCBzdHJl
cnJvcihlcnJubykpOw0KICAgICAgICAgICAgICAgIHJldHVybiAtMTsNCiAg
ICAgICAgfQ0KDQogICAgICAgIGlmICgodGVzdF9zZW1pZCA9IHNlbWdldChr
ZXksIFNFTVNJWkUsIElQQ19DUkVBVCB8IElQQ19FWENMIHwgMDY2NikpIDwg
MCkgew0KCQkJaWYgKGVycm5vID09IEVFWElTVCkgew0KCQkJCXByaW50Zigi
VGVzdCBzZW1hcGhvcmUgaGFzIGV4aXN0ZWQuXG4iKTsNCgkJCQlwcmludGYo
IkdldCB0ZXN0IHNlbWFwaG9yZS4uLlxuIik7DQoJCQkJaWYgKCh0ZXN0X3Nl
bWlkID0gc2VtZ2V0KGtleSwgMCwgMDY2NikpIDwgMCkgew0KCQkJCQlwcmlu
dGYoInNlbWdldCBmYWlsZWQgZm9yWyVzXS5cbiIsIHN0cmVycm9yKGVycm5v
KSk7DQoJCQkJCXJldHVybiAtMTsNCgkJCQl9IGVsc2Ugew0KCQkJCQl0b19z
aG93KCk7DQoJCQkJCXByaW50ZigiR2V0IHRlc3Qgc2VtYXBob3JlIHN1Y2Nl
c3NmdWxseS5cbiIpOw0KCQkJCQlyZXR1cm4gMDsNCgkJCQl9DQoJCQl9DQoJ
CQlwcmludGYoInNlbWdldCBmYWlsZWRbJXNdLlxuIiwgc3RyZXJyb3IoZXJy
bm8pKTsNCgkJCXJldHVybiAtMTsNCiAgICAgICAgfQ0KCQ0KCWZvciAoaSA9
IDA7IGk8IFNFTVNJWkU7IGkrKykNCgkJYWxsdmFsW2ldID0gODsNCglhcmcu
YXJyYXkgPSBhbGx2YWw7DQoNCglpZiAoc2VtY3RsKHRlc3Rfc2VtaWQsIFNF
TVNJWkUsIFNFVEFMTCwgYXJnKSA8IDApIHsNCiAgICAgICAgICAgIHByaW50
Zigic2VtY3RsIGZhaWxlZCBmb3JbJXNdLlxuIiwgc3RyZXJyb3IoZXJybm8p
KTsNCiAgICAgICAgICAgIHJldHVybiAtMTsNCgl9DQoJDQoJcmV0dXJuIDA7
DQp9DQoNCmludA0KbXV0ZXhfb3Bfc2VtYXBob3JlKGludCBvcCkNCnsNCglp
bnQJaTsNCglzdHJ1Y3Qgc2VtYnVmIG9wYXJyYXlbU0VNU0laRV07DQoJDQoJ
Zm9yIChpID0gMDsgaSA8IFNFTVNJWkU7IGkrKykgew0KCQlvcGFycmF5W2ld
LnNlbV9udW0gPSBpOw0KCQlvcGFycmF5W2ldLnNlbV9vcCA9IG9wOw0KCQlv
cGFycmF5W2ldLnNlbV9mbGcgPSBTRU1fVU5ETzsNCgl9DQoNCglpZiAoc2Vt
b3AodGVzdF9zZW1pZCwgb3BhcnJheSwgU0VNU0laRSkgPCAwKSB7DQoJCXBy
aW50Zigic2Vtb3AgZmFpbGVkIGZvclslc10uXG4iLCBzdHJlcnJvcihlcnJu
bykpOw0KCQlyZXR1cm4gLTE7DQoJfSBlbHNlDQoJCXJldHVybiAwOw0KfQ0K
DQppbnQNCm1haW4odm9pZCkNCnsNCglpbnQJcmV0Ow0KDQovLwlwcmludGYo
IkNyZWF0ZSB0ZXN0IHNlbWFwaG9yZS4uLlxuIik7DQoJaWYgKGNyZWF0ZV90
ZXN0X3NlbWFwaG9yZSgpIDwgMCkgew0KCQlwcmludGYoIkNyZWF0ZSB0ZXN0
IHNlbWFwaG9yZSBmYWlsZWQuXG4iKTsNCgkJcmV0dXJuIC0xOw0KCX0gLy9l
bHNlDQoJCS8vcHJpbnRmKCJDcmVhdGUgdGVzdCBzZW1hcGhvcmUgc3VjY2Vz
c2Z1bGx5LlxuIik7DQoNCglwcmludGYoImJlZm9yZSBHZXQgc2VtYXBob3Jl
IGV4Y2x1c2l2ZWx5Li4uXG4iKTsNCgl0b19zaG93KCk7DQoJaWYgKG11dGV4
X29wX3NlbWFwaG9yZSgtMSkgPCAwKSB7DQoJCXByaW50ZigiR2V0IHRlc3Qg
c2VtYXBob3JlIGZhaWxlZC5cbiIpOw0KCQlyZXR1cm4gLTE7DQoJfSBlbHNl
DQoJCXByaW50ZigiYWZ0ZXIgR2V0IHNlbWFwaG9yZSAuLi5cbiIpOw0KDQoJ
dG9fc2hvdygpOw0KDQoJc2xlZXAoNSk7CQ0KDQoJcHJpbnRmKCJiZWZvcmUg
cmVsZWFzZSBzZW1hcGhvcmUgZXhjbHVzaXZlbHkuLi5cbiIpOw0KCXRvX3No
b3coKTsNCg0KCWlmIChtdXRleF9vcF9zZW1hcGhvcmUoMSkgPCAwKSB7DQoJ
CXByaW50ZigiUmVsZWFzZSB0ZXN0IHNlbWFwaG9yZSBmYWlsZWQuXG4iKTsN
CgkJcmV0dXJuIC0xOw0KCX0gZWxzZSANCgkJcHJpbnRmKCJiZWZvcmUgcmVs
ZWFzZSBzZW1hcGhvcmUgZXhjbHVzaXZlbHkuLi5cbiIpOw0KCXRvX3Nob3co
KTsNCglyZXR1cm4gMDsNCn0NCg0KDQo=


--0__=48256E4A00194F4A8f9e8a93df938690918c48256E4A00194F4A
Content-Type: text/plain; charset=us-ascii

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/
--0__=48256E4A00194F4A8f9e8a93df938690918c48256E4A00194F4A--


- Raw text -


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