Mail Archives: cygwin/2004/02/29/23:34:03
--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 -