This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
ithreads: cond_signal() on a non-shared object coredumped
[perl5.git] / ext / threads / shared / shared.xs
index 2d61d24..f922242 100644 (file)
@@ -1237,11 +1237,11 @@ cond_signal_enabled(SV *ref)
        if(SvROK(ref))
            ref = SvRV(ref);
        shared = Perl_sharedsv_find(aTHX_ ref);
+       if(!shared)
+           croak("cond_signal can only be used on shared values");
        if (ckWARN(WARN_THREADS) && shared->lock.owner != aTHX)
            Perl_warner(aTHX_ packWARN(WARN_THREADS),
                            "cond_signal() called on unlocked variable");
-       if(!shared)
-           croak("cond_signal can only be used on shared values");
        COND_SIGNAL(&shared->user_cond);
 
 void