From owner-freebsd-threads@FreeBSD.ORG Fri May 11 11:28:13 2007 Return-Path: X-Original-To: freebsd-threads@freebsd.org Delivered-To: freebsd-threads@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 1339416A403 for ; Fri, 11 May 2007 11:28:13 +0000 (UTC) (envelope-from liu_peng@ec.com.cn) Received: from ec.com.cn (mofcom.gov.cn [211.88.2.44]) by mx1.freebsd.org (Postfix) with ESMTP id 1BC4013C44C for ; Fri, 11 May 2007 11:28:12 +0000 (UTC) (envelope-from liu_peng@ec.com.cn) Received: from localhost (localhost.localdomain [127.0.0.1]) by ec.com.cn (Postfix) with SMTP id A1CFB1BF7F for ; Fri, 11 May 2007 19:04:08 +0800 (CST) Received: from liupeng (unknown [211.88.25.64]) by ec.com.cn (Postfix) with ESMTP id 3D73E1BF82 for ; Fri, 11 May 2007 19:04:08 +0800 (CST) Message-ID: <000701c793bc$d897cbf0$401958d3@liupeng> From: "liupeng" To: Date: Fri, 11 May 2007 19:09:29 +0800 MIME-Version: 1.0 X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2900.3028 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3028 Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Subject: question about using freebsd threads X-BeenThere: freebsd-threads@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Threading on FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 May 2007 11:28:13 -0000 SGksDQogIEkndmUgYSBwcm9ibGVtIHdpdGggdXNpbmcgdGhyZWFkcy4NCiAgSSB3cml0ZSBhIHNp bXBsZSBwcm94eSBzZXJ2ZXIgb24gZnJlZWJzZCBsaWtlIHRoaXM6DQoNCj09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQojaW5jbHVkZSA8cHRocmVhZC5oPg0K I2luY2x1ZGUgPHN5cy90eXBlcy5oPg0KI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4NCiNpbmNsdWRl IDxzdGRpby5oPg0KI2luY2x1ZGUgPHN0cmluZy5oPg0KI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4N CiNpbmNsdWRlIDxhcnBhL2luZXQuaD4NCiNpbmNsdWRlIDx1bmlzdGQuaD4NCiNpbmNsdWRlIDxl cnJuby5oPg0KI2luY2x1ZGUgPHNpZ25hbC5oPg0KI2luY2x1ZGUgPHN0ZGxpYi5oPg0KDQppbnQg c2NMaXN0ZW49LTE7DQppbnQgaWdDb25uTnVtPTU7DQoNCiNkZWZpbmUgQlVGX0xFTl80SyA0MDk2 DQoNCmludCBTeXNfcmVjdihjaGFyKiBwQnVmLCBpbnQgaUJ1ZkxlbiwgaW50IHNjQ29uICkNCnsN Cg0KIGludCBpUmVzdWx0ID0gMDsNCg0KIGlSZXN1bHQgPSByZWN2KHNjQ29uLCBwQnVmLCBpQnVm TGVuLCAwKTsNCg0KIHJldHVybiBpUmVzdWx0Ow0KDQp9DQoNCmludCBTeXNfc2VuZChjaGFyKiBw QnVmLCBpbnQgaUJ1ZkxlbiwgaW50IHNjQ29uICkNCnsNCg0KIGludCBpUmVzdWx0PTA7DQoNCiAg Zm9yIChpbnQgaVdyaXRlID0gMDsgaVdyaXRlIDwgaUJ1ZkxlbjsgaVdyaXRlICs9IGlSZXN1bHQp DQogIHsNCiAgIGlSZXN1bHQgPSBzZW5kKHNjQ29uLCBwQnVmICsgaVdyaXRlLCBpQnVmTGVuIC0g aVdyaXRlLCAwKTsNCiAgIGlmIChpUmVzdWx0IDw9IDApDQogICAgcmV0dXJuIGlSZXN1bHQ7DQog IH0NCg0KDQogcmV0dXJuIGlSZXN1bHQ7DQoNCn0NCg0KDQppbnQgU3lzX0Nvbm5lY3QoIGNvbnN0 IGNoYXIqIHN6QWRkciwgdW5zaWduZWQgaW50IHVpUG9ydCkNCnsNCiBpbnQgc2NDb24gPSAtMTsN CiBzdHJ1Y3Qgc29ja2FkZHJfaW4gYWRkcjsNCiANCiBpbnQgblJ2ID0gMDsNCiANCiBpbnQgbmVy cj0wOw0KIGludCBuZGF0YT0xOw0KDQoNCiBzY0NvbiA9IHNvY2tldChBRl9JTkVULCBTT0NLX1NU UkVBTSwgSVBQUk9UT19UQ1ApOw0KIA0KDQogaWYgKHNjQ29uID09IC0xKQ0KIHsNCiAgcmV0dXJu IHNjQ29uOw0KIH0NCg0KIGlmKHN6QWRkcikNCiB7ICANCiAgYWRkci5zaW5fYWRkci5zX2FkZHIg PSBpbmV0X2FkZHIoc3pBZGRyKTsNCiB9DQoNCg0KIGFkZHIuc2luX2ZhbWlseSA9IEFGX0lORVQ7 DQogYWRkci5zaW5fcG9ydCA9IGh0b25zKChzaG9ydCl1aVBvcnQpOw0KDQogaWYgKGNvbm5lY3Qo c2NDb24sIChzdHJ1Y3Qgc29ja2FkZHIgKikmYWRkcixzaXplb2YoYWRkcikpID09IC0xKQ0KIHsN CiAgY2xvc2Uoc2NDb24pOw0KICBzY0NvbiA9IC0xOw0KIH0NCg0KIHJldHVybiBzY0NvbjsNCg0K fQ0KDQp2b2lkICogaW50ZXJuYWxUaHJlYWRQcm9jKHZvaWQqIGxwUGFyYW0pDQp7DQogaW50IHNj Q29uOw0KIGludCBzY1NlcnZlcj0tMTsNCiBpbnQgaUNvdW50PTA7DQogY2hhciAqcEJ1ZmZlcj1O VUxMOw0KIGludCBpUmV0PTA7DQogZmRfc2V0IGZkUmVjdjsNCiBzdHJ1Y3QgdGltZXZhbCB0aW1l b3V0Ow0KIA0KIHNjQ29uPSooKGludCAqKWxwUGFyYW0pOw0KIGZyZWUobHBQYXJhbSk7DQogDQog cHJpbnRmKCJ0aHJlYWQgJWQgY3JlYXRlZFxuIixwdGhyZWFkX3NlbGYoKSk7DQogDQogcHRocmVh ZF9kZXRhY2gocHRocmVhZF9zZWxmKCkpOw0KIA0KIHNjU2VydmVyID0gU3lzX0Nvbm5lY3QoICIy MTEuODguNS4xMiIsIDgwKTsNCiBpZiggc2NTZXJ2ZXIgPT0gLTEgKQ0KIHsNCiAgZ290byBFbmQ7 DQogfQ0KIA0KIHBCdWZmZXIgICAgICAgICA9IG5ldyBjaGFyW0JVRl9MRU5fNEsrMTAyNF07DQog aWYocEJ1ZmZlciA9PSBOVUxMKSANCiB7DQogIHByaW50ZigiYWxsb2MgbWVtb3J5IGZhaWxlZFxu Iik7DQogIGdvdG8gRW5kOw0KIH0NCg0KIHRpbWVvdXQudHZfc2VjICA9IDMwMDsNCiB0aW1lb3V0 LnR2X3VzZWMgPSAwOw0KDQoNCg0KIGludCBtYXg7ICAgIA0KIG1heCA9IChzY0NvbiA+IHNjU2Vy dmVyKSA/IHNjQ29uIDogc2NTZXJ2ZXI7DQogIA0KIHdoaWxlKDEpDQogew0KICANCiAgRkRfWkVS TygmZmRSZWN2KTsNCiAgRkRfU0VUKHNjQ29uLCAmZmRSZWN2KTsNCiAgRkRfU0VUKHNjU2VydmVy LCAmZmRSZWN2KTsNCiAgDQogIGlSZXQ9c2VsZWN0KG1heCsxLCAmZmRSZWN2LCBOVUxMLCBOVUxM LCAmdGltZW91dCk7DQogIA0KICBpZiAoIGlSZXQgPiAwICkNCiAgew0KICAgaWYoRkRfSVNTRVQo c2NDb24sJmZkUmVjdikpDQogICB7DQogICAgDQogICAgbWVtc2V0KHBCdWZmZXIsMCxCVUZfTEVO XzRLKTsNCiAgICBpQ291bnQgPSBTeXNfcmVjdihwQnVmZmVyLCBCVUZfTEVOXzRLLCBzY0NvbiAp Ow0KICAgIGlmIChpQ291bnQ+MCkNCiAgICB7DQogICAgIGlDb3VudCA9IFN5c19zZW5kKCBwQnVm ZmVyLCBpQ291bnQsIHNjU2VydmVyICk7DQogICAgIGlmIChpQ291bnQ+MCkNCiAgICAgew0KICAg ICAgY29udGludWU7DQogICAgIH0NCiAgICAgZWxzZQ0KICAgICB7DQogICAgICBnb3RvIEVuZDsN CiAgICAgfQ0KICAgIH0NCiAgICBlbHNlDQogICAgew0KICAgICBnb3RvIEVuZDsNCiAgICB9DQog ICB9DQogICBlbHNlIGlmKEZEX0lTU0VUKHNjU2VydmVyLCZmZFJlY3YpKQ0KICAgew0KICAgIG1l bXNldChwQnVmZmVyLDAsQlVGX0xFTl80Syk7DQogICAgaUNvdW50ID0gU3lzX3JlY3YoIHBCdWZm ZXIsIEJVRl9MRU5fNEssIHNjU2VydmVyICk7DQogICAgaWYgKGlDb3VudD4wKQ0KICAgIHsNCiAN CiAgICAgaUNvdW50ID0gU3lzX3NlbmQocEJ1ZmZlciwgaUNvdW50LCBzY0NvbiApOw0KICAgICBp ZihpQ291bnQgPD0gMCkNCiAgICAgew0KIA0KICAgICAgIGdvdG8gRW5kOw0KICAgICB9DQogICAg IA0KICAgIA0KICAgIH0NCiAgICBlbHNlDQogICAgew0KICAgICBnb3RvIEVuZDsNCiAgICB9DQog ICB9DQogICBlbHNlDQogICB7DQogICAgZ290byBFbmQ7DQogICB9DQogIH0NCiAgZWxzZQ0KICB7 DQogICAvL3ByaW50Zigic2VsZWN0IDwgMCAsZXJyPSVkXG4iLGVycm5vKTsNCiAgIA0KICB9DQog fQ0KICANCg0KDQpFbmQ6IA0KIGlmIChzY1NlcnZlciE9LTEpDQogIGNsb3NlKHNjU2VydmVyKTsN CiBpZiAoc2NDb24hPS0xKQ0KICBjbG9zZShzY0Nvbik7DQogaWYocEJ1ZmZlcikNCiAgZGVsZXRl W10gcEJ1ZmZlcjsNCiAgDQogcHJpbnRmKCJ0aHJlYWQgJWQgdGVybWluYXRlZFxuIixwdGhyZWFk X3NlbGYoKSk7DQogDQogcmV0dXJuIE5VTEw7DQoNCn0NCg0KaW50IFN5c19DcmVhdGVMaXN0ZW5Q b3J0KCB1bnNpZ25lZCBpbnQgdWlQb3J0LCBib29sIGJUQ1AsIGNoYXIgKnNJUCApDQp7DQogc3Ry dWN0IHNvY2thZGRyX2luIGFkZHI7DQogaW50IHNjTGlzdGVuID0gLTE7DQoNCiBpZiggYlRDUCAp DQogIHNjTGlzdGVuID0gc29ja2V0KEFGX0lORVQsIFNPQ0tfU1RSRUFNLCBOVUxMKTsNCiBlbHNl DQogIHNjTGlzdGVuID0gc29ja2V0KEFGX0lORVQsIFNPQ0tfREdSQU0sIE5VTEwpOw0KDQoNCiBp Ziggc0lQICE9IE5VTEwgKQ0KICBhZGRyLnNpbl9hZGRyLnNfYWRkciA9ICBpbmV0X2FkZHIoKGNv bnN0IGNoYXIqKXNJUCk7DQogZWxzZQ0KICBhZGRyLnNpbl9hZGRyLnNfYWRkciA9ICBodG9ubChJ TkFERFJfQU5ZKTsNCg0KIGFkZHIuc2luX2ZhbWlseSA9IEFGX0lORVQ7DQogYWRkci5zaW5fcG9y dCA9IGh0b25zKChzaG9ydCl1aVBvcnQpOw0KDQogaWYgKGJpbmQoc2NMaXN0ZW4sIChzdHJ1Y3Qg c29ja2FkZHIqKSZhZGRyLCBzaXplb2Yoc3RydWN0IHNvY2thZGRyKSkpDQogew0KICBjbG9zZShz Y0xpc3Rlbik7DQogIHNjTGlzdGVuID0gLTE7DQogIHJldHVybiBzY0xpc3RlbjsNCiB9DQoNCiBp ZiggYlRDUCApDQogeyAgDQogIGlmIChsaXN0ZW4oc2NMaXN0ZW4sIGlnQ29ubk51bSkpDQogIHsN CiAgIGNsb3NlKHNjTGlzdGVuKTsNCiAgIHNjTGlzdGVuID0gLTE7DQogICByZXR1cm4gc2NMaXN0 ZW47DQogIH0NCiB9DQoNCiByZXR1cm4gc2NMaXN0ZW47DQp9DQoNCg0Kdm9pZCAqQ3JlYXRlVGhy ZWFkRm9yUmVxdWVzdCh2b2lkICpwUEFSQU0pDQp7DQogcHRocmVhZF90IG15dGhyZWFkOw0KICAN CiBpbnQgKnNjQ2xpZW50PU5VTEw7DQogDQogDQogd2hpbGUoMSkNCiB7DQogICBzY0NsaWVudD0o aW50ICopbWFsbG9jKHNpemVvZihpbnQpKTsNCiAgIA0KICAgKnNjQ2xpZW50PWFjY2VwdChzY0xp c3RlbixOVUxMLDApOw0KICAgDQogICBpZiAoKnNjQ2xpZW50PDApDQogICB7DQogICAgcHJpbnRm KCJhY2NlcHQgZmFpbGVkXG4iKTsNCiAgICBjb250aW51ZTsNCiAgIH0NCg0KICAgaWYgKCFwdGhy ZWFkX2NyZWF0ZSgmbXl0aHJlYWQsTlVMTCxpbnRlcm5hbFRocmVhZFByb2MsKHZvaWQgKilzY0Ns aWVudCkpDQogICB7DQogICB9DQogICBlbHNlDQogICB7DQogICAgIHByaW50ZigiY3JlYXRlIHRo cmVhZCBpbnRlcm5hbFRocmVhZFByb2MgZmFpbGVkXG4iKTsgDQogICB9DQogIA0KIH0NCiANCn0N Cg0KDQppbnQgbWFpbihpbnQgYXJnYyxjaGFyICphcmd2W10pDQp7DQogcHRocmVhZF90IHVpVGhy ZWFkSUQ7DQogaW50IG5EYXRhPTE7DQogbGluZ2VyIGxfdG12Ow0KICAgICAgDQogDQogc2lnbmFs KFNJR1BJUEUsICAgU0lHX0lHTik7ICAgDQogDQogc2NMaXN0ZW49U3lzX0NyZWF0ZUxpc3RlblBv cnQoNDQzLDEsIjIxMS44OC44LjE4MiIpOw0KIGlmIChzY0xpc3Rlbj09LTEpDQogew0KICBwcmlu dGYoImVycm9yIGluIGNyZWF0ZSBsaXN0ZW4gc29ja2V0XG4iKTsNCiAgZ290byBjbGVhbnVwOw0K IH0NCiANCiBpZihwdGhyZWFkX2NyZWF0ZSgmdWlUaHJlYWRJRCxOVUxMLENyZWF0ZVRocmVhZEZv clJlcXVlc3QsTlVMTCkpDQogew0KICBwcmludGYoImNyZWF0ZSB0aHJlYWQgQ3JlYXRlVGhyZWFk Rm9yUmVxdWVzdCBmYWlsISEhIVxuIik7DQogIHJldHVybiBmYWxzZTsNCiB9DQogDQogDQogaWYg KHB0aHJlYWRfam9pbih1aVRocmVhZElELE5VTEwpKQ0KICB7DQogICBwcmludGYoInB0aHJlYWQg am9pbiBmYWlsZWRcbiIpOw0KICAgcmV0dXJuIGZhbHNlOw0KICB9DQogDQogDQoNCmNsZWFudXA6 DQogcmV0dXJuIDA7IA0KIA0KfQ0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0NCg0KRnJlZWJzZCBwbGF0Zm9ybToNCkZyZWVCU0QgSmFpbC0xNjEgNi4yLVJF TEVBU0UgRnJlZUJTRCA2LjItUkVMRUFTRSAjMDogRnJpIEphbiAxMiAxMTowNTozMCBVVEMgMjAw NyAgICAgcm9vdEBkZXNzbGVyLmNzZS5idWZmYWxvLmVkdTovdXNyL29iai91c3Ivc3JjL3N5cy9T TVAgIGkzODYNCg0KQ29tcGlsZXIgZ2NjOg0KZ2NjIChHQ0MpIDMuNC42IFtGcmVlQlNEXSAyMDA2 MDMwNQ0KQ29weXJpZ2h0IChDKSAyMDA2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLg0K VGhpcyBpcyBmcmVlIHNvZnR3YXJlOyBzZWUgdGhlIHNvdXJjZSBmb3IgY29weWluZyBjb25kaXRp b25zLiAgVGhlcmUgaXMgTk8NCndhcnJhbnR5OyBub3QgZXZlbiBmb3IgTUVSQ0hBTlRBQklMSVRZ IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLg0KDQpDb21waWxlIG9wdGlvbjoN CmcrKyAgLWcgIC1vIHRlc3QgdGVzdC5jcHAgLWxwdGhyZWFkDQoNCkkgdXNlIGxvYWRydW5uZXIg dG8gdGVzdCBteSBwcm94eSBzZXJ2ZXIsaXQgY3Jhc2hlZCBhdCBhYm91dCA1MDAgdnVzZXIuDQoN CnRoZSBjb3JlZHVtcCBpbmZvcm1hdGlvbjoNCihnZGIpIHdoZXJlDQojMCAgMHgyODA5ODUzNyBp biBwdGhyZWFkX3Rlc3RjYW5jZWwgKCkgZnJvbSAvbGliL2xpYnB0aHJlYWQuc28uMg0KIzEgIDB4 MjgwOTBlYzggaW4gcHRocmVhZF9tdXRleGF0dHJfaW5pdCAoKSBmcm9tIC9saWIvbGlicHRocmVh ZC5zby4yDQojMiAgMHgyODA3YTQ1MCBpbiA/PyAoKQ0KDQpJIHRyeSB0byBjaGFuZ2UgbXkgY29t cGlsZSBvcHRpb24gdXNlIC1wdGhyZWFkIG9yIC1sY19yLGJ1dCBpdCBzdGlsbCBjcmFzaGVkLHdo eT8gRG9lcyBzb21lb25lIGNhbiBnaXZlIHN1Z2dlc3Rpb25zPw0KDQoNCiAg