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>