While I can't really test this thoroughly, Pat Knight and the Solaris
man pages suggest that the proper thing to do is to add THR_NEW_LWP to
the flags on thr_create(), and that there really isn't a downside, so
I'll do that.
diff --git a/Python/thread_solaris.h b/Python/thread_solaris.h
index e902245..5fc7850 100644
--- a/Python/thread_solaris.h
+++ b/Python/thread_solaris.h
@@ -77,7 +77,8 @@
funcarg = (struct func_arg *) malloc(sizeof(struct func_arg));
funcarg->func = func;
funcarg->arg = arg;
- if (thr_create(0, 0, new_func, funcarg, THR_DETACHED, 0)) {
+ if (thr_create(0, 0, new_func, funcarg,
+ THR_DETACHED | THR_NEW_LWP, 0)) {
perror("thr_create");
free((void *) funcarg);
success = -1;