|
CBonusSystemNode::getAllBonuses takes a lock and recursively calls itself.
#0 __lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:136
#1 0x00007f9938668849 in _L_lock_953 () from /lib/libpthread.so.0
0000002 0x00007f993866866b in __pthread_mutex_lock (mutex=0x7f993b98d760) at pthread_mutex_lock.c:61
0000003 0x000000000051222a in boost::mutex::lock (this=0x7f993b98d760)
at /usr/include/boost/thread/pthread/mutex.hpp:50
0000004 0x0000000000514174 in boost::unique_lock<boost::mutex>::lock (this=0x7f992a92ee90)
at /usr/include/boost/thread/locks.hpp:349
0000005 0x00000000005140c1 in boost::unique_lock<boost::mutex>::unique_lock (this=0x7f992a92ee90, m_=...)
at /usr/include/boost/thread/locks.hpp:227
0000006 0x00007f993b58d892 in CBonusSystemNode::getAllBonuses (this=0x3e9e168, selector=..., limit=..., root=0x0,
cachingStr=...) at HeroBonus.cpp:488
0000007 0x00007f993b58c426 in IBonusBearer::getBonuses (this=0x3e9e168, selector=..., cachingStr=...)
at HeroBonus.cpp:308
0000008 0x00007f993b58bd14 in IBonusBearer::hasBonus (this=0x3e9e168, selector=..., cachingStr=...)
at HeroBonus.cpp:268
0000009 0x00007f993b58bf15 in IBonusBearer::hasBonusOfType (this=0x3e9e168, type=Bonus::DRAGON_NATURE, subtype=-1)
at HeroBonus.cpp:280
0000010 0x00007f993b592aa5 in HasAnotherBonusLimiter::limit (this=0x7f992c438210, b=0x7f992c438230, node=...)
at HeroBonus.cpp:1159
0000011 0x00007f993b58efc9 in CBonusSystemNode::isLimitedOnUs (this=0x3e9e168, b=0x7f992c438230) at HeroBonus.cpp:627
0000012 0x00007f993b59baba in boost::_mfi::cmf1<bool, CBonusSystemNode, Bonus*>::operator() (this=0x7f992a92f350,
t=..., a1=0x7f992c438230) at /usr/include/boost/bind/mem_fn_template.hpp:237
0000013 0x00007f993b5996cf in boost::_bi::list2<boost::reference_wrapper<CBonusSystemNode const>, boost::arg<1> >::opera---Type <return> to continue, or q <return> to quit---
tor()<bool, boost::_mfi::cmf1<bool, CBonusSystemNode, Bonus*>, boost::_bi::list1<Bonus*&> > (this=0x7f992a92f360,
f=..., a=...) at /usr/include/boost/bind/bind.hpp:303
0000014 0x00007f993b597222 in boost::_bi::bind_t<bool, boost::_mfi::cmf1<bool, CBonusSystemNode, Bonus*>, boost::_bi::list2<boost::reference_wrapper<CBonusSystemNode const>, boost::arg<1> > >::operator()<Bonus*> (this=0x7f992a92f350,
a1=@0x7f992a92f320) at /usr/include/boost/bind/bind_template.hpp:32
0000015 0x00007f993b595646 in BonusList::remove_if<boost::_bi::bind_t<bool, boost::_mfi::cmf1<bool, CBonusSystemNode, Bonus*>, boost::_bi::list2<boost::reference_wrapper<CBonusSystemNode const>, boost::arg<1> > > > (this=0x3dbf2e0,
pred=...) at HeroBonus.h:387
0000016 0x00007f993b58b610 in BonusList::limit (this=0x3dbf2e0, node=...) at HeroBonus.cpp:182
0000017 0x00007f993b58db54 in CBonusSystemNode::getAllBonuses (this=0x3e9e168, selector=..., limit=..., root=0x0,
cachingStr=...) at HeroBonus.cpp:526
0000018 0x00007f993b58bc6e in IBonusBearer::valOfBonuses (this=0x3e9e168, selector=..., cachingStr=...)
at HeroBonus.cpp:263
0000019 0x00007f993b58bb87 in IBonusBearer::valOfBonuses (this=0x3e9e168, type=Bonus::PRIMARY_SKILL, subtype=0)
at HeroBonus.cpp:257
0000020 0x00007f993b58c7ec in IBonusBearer::Attack (this=0x3e9e168) at HeroBonus.cpp:352
0000021 0x00007f993b58cd52 in IBonusBearer::getPrimSkillLevel (this=0x3e9e168, id=0) at HeroBonus.cpp:403
0000022 0x00007f993b3a89a6 in InfoAboutHero::initFromHero (this=0x7f992a92f880, h=0x3e9e130, detailed=true)
at CGameState.cpp:2621
0000023 0x00007f993b5a32e5 in CGameInfoCallback::getHeroInfo (this=0x4c6dc90, hero=0x3e9e130, dest=...)
at IGameCallback.cpp:725
0000024 0x000000000071bdcd in CPlayerInterface::infoWin (this=0x4c6dce0, specific=0x3e9e130)
at CPlayerInterface.cpp:397
..... |
|