Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , 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: From: xuzhd AT Lenovo DOT com Date: Mon, 1 Mar 2004 12:36:57 +0800 MIME-Version: 1.0 Content-type: multipart/mixed; Boundary="0__=48256E4A00194F4A8f9e8a93df938690918c48256E4A00194F4A" Content-Disposition: inline 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--