Commit Diff


commit - 74fc94d47e68684567f16d3d09b822cdad721e4a
commit + 8f4871fd2e9806293b0d6756402b8a019c732985
blob - cac2d497dca8fc8d67b84dde86ed1b8c1a9602ae
blob + c07a84f3ae02802831e9f972d9d849214c2533ab
--- src/libthread/thread.c
+++ src/libthread/thread.c
@@ -582,6 +582,14 @@ main(int argc, char **argv)
 	_threadcreate(p, threadmainstart, nil, mainstacksize);
 	procscheduler(p);
 	_threaddaemonize();
+	/*
+	 * On Linux 2.6, if the main thread exits then the others
+	 * keep running but the process shows up as a zombie in ps
+	 * and is not attachable with ptrace.  We'll just sit around
+	 * instead of exiting.
+	 */
+	for(;;)
+		sleep(1000);
 	_threadpexit();
 	return 0;
 }