Bug#175511: errno is mishandled by libc in multithreaded programs
On Tue, Jan 07, 2003 at 06:42:19PM +0000, Nikita Schmidt wrote:
> On Tuesday, 7 Jan, Daniel Jacobowitz wrote:
> > Libcurl correctly uses __errno_location(); I assume the others do also.
> > That makes the failure quite surprising. Can you produce a test case
> > for this?
>
> Here is a test case which also correctly uses __errno_location(). This
> program produces roughly the following output:
> T1: Expected error, got errno == 0.
> T2: OK
> T1: Expected error, got errno == 0.
> T1: Expected error, got errno == 0.
> T2: OK
> T1: Expected error, got errno == 0.
> T2: OK
> Here thread 1 finds errno == 0 after a failed call to close(555).
> This doesn't happen if the program is linked statically.
>
> Nikita
Can you tell us more about your system? This bug seems to affect some
people but not others; it does not show up on my machine at all. I got
only "OK"'s.
--
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer
Reply to: