Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 22 Jul 2000 00:32:57 +0800
From:      "Tan Juay Kwang" <jk.tan@pacific.net.sg>
To:        "Eran Gabber" <eran@research.bell-labs.com>
Cc:        <freebsd-questions@FreeBSD.ORG>
Subject:   RE: pthreads on 4.0-STABLE
Message-ID:  <NEBBLKHLGDECFCNMHPEEEEAMCPAA.jk.tan@pacific.net.sg>
In-Reply-To: <Pine.GSO.3.96.1000720151822.10644k-100000@aura.research.bell-labs.com>

next in thread | previous in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format.

------=_NextPart_000_0014_01BFF374.61A01420
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit

>
> I found that the standard Pthreads library uses software
> threads, which
> tends to block the entire process (including all other threads) when
> one of the threads blocks. Although the source of the Pthreads library
> shows that other threads should be allowed to run when one of
> them blocks,
> in fact all threads blocks when one of them waits for file I/O.
>
> Try to use the linuxthreads package, which is available in
> FreeBSD 4.0.
> Linuxthreads is an alternate implementation of Pthreads,
> which supports
> true concurrency among threads.
> Linuxthreads employs the rfork() system call to create a new
> light-weight process for each thread. In this way, if one thread
> blocks, others can continue.
>

When I tried it on RedHat 6.2, I found that all my threads appears as
different processes under ps(1), which is due to the implementation of the
linux threads. Then I realized that I can kill off one of them without
taking down the entire process. The killed off thread will appear as
<defunct> under ps(1). I'm rather baffled by this behavior since I've
always thought that you can't 'kill' a thread within a process by another
process, in this case, kill(1).

However, most of the time, killing off 1 thread does take down the entire
process.

> Since linuxthreads is a different implementation of Pthreads with the
> same API, you can just relink your program with it and try again.
> It may solve your concurrent gethostbyname() problem and the
> dependency
> between phtread_create() and open()/read() that you reported.
>
> Eran
>
>

Best regards,
Juay Kwang

------=_NextPart_000_0014_01BFF374.61A01420
Content-Type: application/x-pkcs7-signature;
	name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
	filename="smime.p7s"

MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIHKjCCAy4w
ggKXoAMCAQICEQDSdi6NFAw9fbKoJV2v7g11MA0GCSqGSIb3DQEBAgUAMF8xCzAJBgNVBAYTAlVT
MRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xhc3MgMSBQdWJsaWMgUHJpbWFy
eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05ODA1MTIwMDAwMDBaFw0wODA1MTIyMzU5NTla
MIHMMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1c3QgTmV0
d29yazFGMEQGA1UECxM9d3d3LnZlcmlzaWduLmNvbS9yZXBvc2l0b3J5L1JQQSBJbmNvcnAuIEJ5
IFJlZi4sTElBQi5MVEQoYyk5ODFIMEYGA1UEAxM/VmVyaVNpZ24gQ2xhc3MgMSBDQSBJbmRpdmlk
dWFsIFN1YnNjcmliZXItUGVyc29uYSBOb3QgVmFsaWRhdGVkMIGfMA0GCSqGSIb3DQEBAQUAA4GN
ADCBiQKBgQC7WkSKBBa7Vf0DeootlE8VeDa4DUqyb5xUv7zodyqdufBou5XZMUFweoFLuUgTVi3H
COGEQqvAopKrRFyqQvCCDgLpL/vCO7u+yScKXbawNkIztW5UiE+HSr8Z2vkV6A+HthzjzMaajn9q
JJLj/OBluqexfu/J2zdqyErICQbkmQIDAQABo3wwejARBglghkgBhvhCAQEEBAMCAQYwRwYDVR0g
BEAwPjA8BgtghkgBhvhFAQcBATAtMCsGCCsGAQUFBwIBFh93d3cudmVyaXNpZ24uY29tL3JlcG9z
aXRvcnkvUlBBMA8GA1UdEwQIMAYBAf8CAQAwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBAgUAA4GB
AIi4Nzvd2pQ3AK2qn+GBAXEekmptL/bxndPKZDjcG5gMB4ZbhRVqD7lJhaSV8Rd9Z7R/LSzdmkKe
wz60jqrlCwbe8lYq+jPHvhnXU0zDvcjjF7WkSUJj7MKmFw9dWBpJPJBcVaNlIAD9GCDlX4KmsaiS
xVhqwY0DPOvDzQWikK5uMIID9DCCA12gAwIBAgIQF/MjDYJPRn81g30kCzsRtzANBgkqhkiG9w0B
AQQFADCBzDEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0
IE5ldHdvcmsxRjBEBgNVBAsTPXd3dy52ZXJpc2lnbi5jb20vcmVwb3NpdG9yeS9SUEEgSW5jb3Jw
LiBCeSBSZWYuLExJQUIuTFREKGMpOTgxSDBGBgNVBAMTP1ZlcmlTaWduIENsYXNzIDEgQ0EgSW5k
aXZpZHVhbCBTdWJzY3JpYmVyLVBlcnNvbmEgTm90IFZhbGlkYXRlZDAeFw0wMDA2MjgwMDAwMDBa
Fw0wMDA4MjcyMzU5NTlaMIIBAzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZl
cmlTaWduIFRydXN0IE5ldHdvcmsxRjBEBgNVBAsTPXd3dy52ZXJpc2lnbi5jb20vcmVwb3NpdG9y
eS9SUEEgSW5jb3JwLiBieSBSZWYuLExJQUIuTFREKGMpOTgxHjAcBgNVBAsTFVBlcnNvbmEgTm90
IFZhbGlkYXRlZDEmMCQGA1UECxMdRGlnaXRhbCBJRCBDbGFzcyAxIC0gTmV0c2NhcGUxFzAVBgNV
BAMUDkp1YXkgS3dhbmcgVGFuMR4wHAYJKoZIhvcNAQkBFg90YW5qa0BpLWRucy5uZXQwgZ8wDQYJ
KoZIhvcNAQEBBQADgY0AMIGJAoGBANW3TvjbDwH/jV4bol+FogFJ2cXuX2yFvQVYBvcL/wB4jNhS
oB9fIba+wt/o41hHtF0pMtjL0CHPY7mnT9DcTNHxC8TeHjnzShxLqgAaf1eBJdKr0dSm4gaxmU7b
CBY03Lfce+gsHhxNclXObUSOWnG/h6Rmvb1r+Uh8ByWZZx/JAgMBAAGjgZwwgZkwCQYDVR0TBAIw
ADBEBgNVHSAEPTA7MDkGC2CGSAGG+EUBBwEIMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vd3d3LnZl
cmlzaWduLmNvbS9ycGEwEQYJYIZIAYb4QgEBBAQDAgeAMDMGA1UdHwQsMCowKKAmoCSGImh0dHA6
Ly9jcmwudmVyaXNpZ24uY29tL2NsYXNzMS5jcmwwDQYJKoZIhvcNAQEEBQADgYEARo2tBDBXqDl5
hlgARNC6NEC/ooWcfKpG/RsfUEbmNqBsokHtUl4qwgymzabniB+h/zY8ib5VlVkpk09xIjd/cjJO
nkbVd4Txl3q6jplkvWFftTIZ/04T1opGap8haVGhdCSETDwaFT73MPUJtZrMDBzMGR1KSAarneh6
PRyXUzMxggM4MIIDNAIBATCB4TCBzDEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsT
FlZlcmlTaWduIFRydXN0IE5ldHdvcmsxRjBEBgNVBAsTPXd3dy52ZXJpc2lnbi5jb20vcmVwb3Np
dG9yeS9SUEEgSW5jb3JwLiBCeSBSZWYuLExJQUIuTFREKGMpOTgxSDBGBgNVBAMTP1ZlcmlTaWdu
IENsYXNzIDEgQ0EgSW5kaXZpZHVhbCBTdWJzY3JpYmVyLVBlcnNvbmEgTm90IFZhbGlkYXRlZAIQ
F/MjDYJPRn81g30kCzsRtzAJBgUrDgMCGgUAoIIBrDAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcB
MBwGCSqGSIb3DQEJBTEPFw0wMDA3MjExNjMyNTZaMCMGCSqGSIb3DQEJBDEWBBTSXPUfyGLEgPLh
RcGDjD+9qWUX4TBYBgkqhkiG9w0BCQ8xSzBJMAoGCCqGSIb3DQMHMA4GCCqGSIb3DQMCAgIAgDAH
BgUrDgMCBzANBggqhkiG9w0DAgIBKDAHBgUrDgMCGjAKBggqhkiG9w0CBTCB8gYJKwYBBAGCNxAE
MYHkMIHhMIHMMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1
c3QgTmV0d29yazFGMEQGA1UECxM9d3d3LnZlcmlzaWduLmNvbS9yZXBvc2l0b3J5L1JQQSBJbmNv
cnAuIEJ5IFJlZi4sTElBQi5MVEQoYyk5ODFIMEYGA1UEAxM/VmVyaVNpZ24gQ2xhc3MgMSBDQSBJ
bmRpdmlkdWFsIFN1YnNjcmliZXItUGVyc29uYSBOb3QgVmFsaWRhdGVkAhAX8yMNgk9GfzWDfSQL
OxG3MA0GCSqGSIb3DQEBAQUABIGA08C/fvSZPv03QZbg01IYA0sluDMt7QS2DwG7WXENqG3je+76
gWbWds4MHM5mpLKpNqqvDEKrrHSLdGoO2bO+jxGFx46DFUUvrdWK+d8CaDNIk1E5yYecZf+bX/5A
A39uFOExeEPT5cqaEo13W8beK4SWYjnVW3dMHP8VQ3MPybwAAAAAAAA=

------=_NextPart_000_0014_01BFF374.61A01420--



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?NEBBLKHLGDECFCNMHPEEEEAMCPAA.jk.tan>