Typing "dist://perl" into the PerlMonks Search box (top of this page) takes you to perl. You can select release 10.0 from a drop-down there and Goto that version and then use "Other tools" to grep the source or "browse".
Line 199 is the first line of:
void recursive_lock_release(pTHX_ recursive_lock_t *lock) { MUTEX_LOCK(&lock->mutex); if (lock->owner == aTHX) { if (--lock->locks == 0) { lock->owner = NULL; COND_SIGNAL(&lock->cond); } } MUTEX_UNLOCK(&lock->mutex); }
from http://cpansearch.perl.org/src/RGARCIA/perl-5.10.0/ext/threads/shared/shared.xs.
http://cpansearch.perl.org/src/RGARCIA/perl-5.10.0/thread.h contains:
# define MUTEX_LOCK(m) \ STMT_START { \ int _eC_; \ if ((_eC_ = pthread_mutex_lock((m)))) \ Perl_croak_nocontext("panic: MUTEX_LOCK (%d) [%s:%d]", \ _eC_, __FILE__, __LINE__); \ } STMT_END
So 22 is "eC" (error code, I'd guess). A $! of 22 is "Invalid argument" for a random Linux box I checked. You should be able to grep for pthread_mutex_lock to dig deeper, etc.
I hope that helps.
- tye
In reply to Re: panic: MUTEX_LOCK (22) - what should I look for? (tools)
by tye
in thread panic: MUTEX_LOCK (22) - what should I look for?
by Wiggins
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |