求助:单线程还死锁?
程序是单线程,但是连接了一个.so动态库,这个库自己要起一个线程。
因此主线程和.so的线程共同操作同一个数据时就要加锁。
但是程序根本没有连接上.so,即只有主线程,还死锁了。
加锁和解锁只有一个地方,都是在同一个函数里,解锁之前没有任何return。
请大家帮忙解释下这种现象,给我点灵感,谢谢!
死锁的地方:
(gdb) bt
#0 0x0063a410 in __kernel_vsyscall ()
#1 0x00794379 in __lll_lock_wait () from /lib/libpthread.so.0
#2 0x0078fa2f in _L_lock_885 () from /lib/libpthread.so.0
#3 0x0078f8f6 in pthread_mutex_lock () from /lib/libpthread.so.0
#4 0x0804e849 in LockCheatMap () at AntiCheat.cpp:102
#5 0x0804e954 in DealCheatMap () at AntiCheat.cpp:217
#6 0x080f0f53 in main (argc=Cannot access memory at address 0x80
) at worldsv_main.cpp:283