This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
prohibit thread join()ing itself (from Dan Sugalski)
[perl5.git] / ext / Thread / Thread.xs
index f8b544d..5d61941 100644 (file)
@@ -353,6 +353,8 @@ join(t)
        int     i = NO_INIT
     PPCODE:
 #ifdef USE_THREADS
+       if (t == thr)
+           croak("Attempt to join self");
        DEBUG_S(PerlIO_printf(PerlIO_stderr(), "%p: joining %p (state %u)\n",
                              thr, t, ThrSTATE(t)););
        MUTEX_LOCK(&t->mutex);