#107 closed enhancement (duplicate)
crash in threads with cerr-usage when cin is a pipe
Reported by: | anonymous | Owned by: | bird |
---|---|---|---|
Priority: | low | Milestone: | |
Component: | libc | Version: | 0.6 |
Severity: | minor | Keywords: | |
Cc: |
Description
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
Change History (2)
comment:1 by , 18 years ago
Resolution: | → duplicate |
---|---|
Status: | new → closed |
comment:2 by , 18 years ago
Component: | libc-frontend → libc |
---|---|
Milestone: | kNIX Phase 1 |
Version: | → 0.6 |
Note:
See TracTickets
for help on using tickets.
same as #109