do not call exits in threaded programs
diff --git a/src/cmd/9p.c b/src/cmd/9p.c
index 0f0a1a6..cc4336b 100644
--- a/src/cmd/9p.c
+++ b/src/cmd/9p.c
@@ -19,7 +19,7 @@
 	fprint(2, "	stat name\n");
 //	fprint(2, "	ls name\n");
 	fprint(2, "without -a, name elem/path means /path on server unix!$ns/elem\n");
-	exits("usage");
+	threadexitsall("usage");
 }
 
 void xread(int, char**);
@@ -142,7 +142,7 @@
 		write(1, buf, n);
 	if(n < 0)
 		sysfatal("read error: %r");
-	exits(0);	
+	threadexitsall(0);	
 }
 
 void
@@ -165,7 +165,7 @@
 		write(1, buf, n);
 	if(n < 0)
 		sysfatal("read error: %r");
-	exits(0);	
+	threadexitsall(0);	
 }
 
 void
@@ -196,7 +196,7 @@
 	}
 	if(n < 0)
 		sysfatal("read error: %r");
-	exits(0);	
+	threadexitsall(0);	
 }
 
 void
@@ -220,7 +220,7 @@
 			sysfatal("write error: %r");
 	if(n < 0)
 		sysfatal("read error: %r");
-	exits(0);	
+	threadexitsall(0);	
 }
 
 void
@@ -245,5 +245,5 @@
 	fmtinstall('D', dirfmt);
 	fmtinstall('M', dirmodefmt);
 	print("%D\n", d);
-	exits(0);
+	threadexitsall(0);
 }