Date: Fri, 11 May 2007 19:09:29 +0800 From: "liupeng" <liu_peng@ec.com.cn> To: <freebsd-threads@freebsd.org> Subject: question about using freebsd threads Message-ID: <000701c793bc$d897cbf0$401958d3@liupeng>
next in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?000701c793bc$d897cbf0$401958d3>