in reply to panic: MUTEX_LOCK (22) - what should I look for?
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
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: panic: MUTEX_LOCK (22) - what should I look for? (tools)
by Anonymous Monk on May 22, 2009 at 02:12 UTC | |
by Anonymous Monk on Mar 22, 2017 at 19:22 UTC |