BTW, one thing I noticed is that the "error code" field in the std::system_error exception which is raised, seems to be set to EPERM ("Operation not permitted"), but this code is not apparently caused by a system call (determined by stracing the process).
For instance, changing the test case to this: #include <cerrno> #include <iostream> #include <thread> int g = 0; void f () { g++; } int main () { std::cerr << "before thread creation..." << std::endl; try { errno = 0; std::thread t (f); std::cerr << "after thread creation..." << std::endl; t.join (); } catch (const std::system_error &e) { std::cerr << "caught std::system_error, what = \"" << e.what () << "\", code = " << e.code().message () << std::endl; } std::cout << "after joing, g = " << g << std::endl; return 0; } Results in this: $ g++-4.5 -std=c++0x -o t t.cc $ ./t before thread creation... caught std::system_error, what = "", code = Operation not permitted after joing, g = 0 strace shows this: $ strace ./t 2>&1 | tail -20 mprotect(0x7f2036a9c000, 16384, PROT_READ) = 0 mprotect(0x7f2036f3c000, 4096, PROT_READ) = 0 mprotect(0x7f2037229000, 32768, PROT_READ) = 0 mprotect(0x7f2037464000, 4096, PROT_READ) = 0 munmap(0x7f203744b000, 90011) = 0 write(2, "before thread creation...", 25before thread creation...) = 25 write(2, "\n", 1 ) = 1 brk(0) = 0x18b2000 brk(0x18d3000) = 0x18d3000 write(2, "caught std::system_error, what ="..., 34caught std::system_error, what = ") = 34 write(2, "\", code = ", 10", code = ) = 10 write(2, "Operation not permitted", 23Operation not permitted) = 23 write(2, "\n", 1 ) = 1 fstat(1, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f2037460000 write(1, "after joing, g = 0\n", 19after joing, g = 0 ) = 19 exit_group(0) = ? Thanks, -Miles -- Cabbage, n. A familiar kitchen-garden vegetable about as large and wise as a man's head. -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org