470,870 Members | 1,517 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 470,870 developers. It's quick & easy.

Stream thread-safety

I know that std streams are not thread-safe (i.e., output can end up
becoming interleaved), but do they share mutable state? (At least in
libstdc++ 4.2 on Linux kernel 2.6.x?)

I just spent a long time tracking down a bug in my program where,
given enough threads, eventually all cout<<int would print in hex
rather than dec, even though I never used stream formatters. couts in
this program are called from multiple threads, and some couts around
the middle of my program ended up interleaved - couts before it are
fine, and later ones end up in hex. After removing the contentious
couts in the middle, the problem went away - no more hex.

Could this have been an effect of using the streams from multiple
threads? I've been searching a long time for memory bugs, but haven't
come up with anything. Thanks in advance for any hints.
Feb 12 '08 #1
0 1001

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

4 posts views Thread by Michael Shestero | last post: by
1 post views Thread by andrewcw | last post: by
5 posts views Thread by Daniel Corbett | last post: by
3 posts views Thread by frustrated | last post: by
1 post views Thread by crashed | last post: by
10 posts views Thread by John Kraft | last post: by
3 posts views Thread by carmelo8 | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.