Skip site navigation (1)Skip section navigation (2)
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>