﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	severity	resolution	keywords	cc
107	crash in threads with cerr-usage when cin is a pipe	anonymous	bird	"Hi,

when I run the following program compiled with gcc 3.3.5 CSD1 and a input redirection I get SYS1808 with code 0005.

{{{
#include <iostream>
using namespace std;

void threadfunc(void*)
{  cerr << ""in thread\n"";
}

int main()
{  cerr << ""before beginthread\n"";
   _beginthread(threadfunc, NULL, 65536, NULL);
   cerr << ""after beginthread\n"";
   return 0;
}
}}}

{{{
D:\TEMP>gcc test.cpp -lstdc++

D:\TEMP>type test.cpp | test.exe
before beginthread
aifnt etrh rbeeagdi
ntSYS1808:
Der Prozeß wurde gestoppt. Der Softwarediagnosecode
(Fehlercode der Ausnahmebedingung) ist 0005.
}}}

Of course, the output to cerr is not serialized, but this does not matter. I removed the mutex only for simplicity.

The signal is triggerd immediately after the end of threadfunc if and only if
 * test.exe is called with input redirection and
 * there is at least one output to cerr in the thread (cout works!).

With gcc 3.2.2 the above program works as expected even with pipe input.


Marcel"	enhancement	closed	low		libc	0.6	minor	duplicate		
