Blocking in syslog

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Blocking in syslog

Bin Chen(sunwen_ling)
Hi,

I am developing a multi-threading program in ARM platform, sometimes the
syslog get stuck and with the gdb, I found this:

(gdb) bt
#0  0x40027da4 in __pthread_sigsuspend (set=0xfffffffc) at
../linuxthreads/sysdeps/unix/sysv/linux/pt-sigsuspend.c:53
#1  0x40027c30 in __pthread_wait_for_restart_signal (self=0xbf7ffbe0) at
pthread.c:1141
#2  0x40029918 in __pthread_alt_lock (lock=0x1be8c, self=0xbf7ffbe0) at
restart.h:34
#3  0x40025f64 in *__GI___pthread_mutex_lock (mutex=0x1be7c) at mutex.c:123
#4  0x0000bde8 in VoIPLog (fmt=0x11d78 "report_event.") at wifictrld.cpp:31
#5  0x0000be98 in report_event (event=1) at wifictrld.cpp:48
#6  0x0000ee84 in read_wifi_events (pData=0x1e948) at tiwlan.c:180
#7  0x400d30a0 in ?? ()
(gdb)

I have add a big lock in the beginning of VoIPLog, but this thing still
happen with randomness.

Any hints?

Thanks a lot.
ABAI