Application high CPU load

after a long period of running, the network application's CPU load in our syst em increase slowly, the failed at the end. we use "truss" tool to trace the process, found that it processes something like "semop" ,"semctl","thread_waitlock","kread" kernel call . The trace log file looks like the followings:

thread_waitlock(0x20862148) = 0
thread_waitlock(0x20862148) = 0
thread_waitlock(0x20862148) = 0
thread_waitlock(0x20862148) = 0
thread_waitlock(0x20862148) = 0
thread_waitlock(0x20862148) = 0
thread_waitlock(0x20862148) = 0
kread(545661256, 0x00000224, 0) = 8
kread(11, " 015 >18\0\0\0\001\0\0\0".., 552) = 552
thread_twakeup(108837, 1073741824) = 0
= 1073741824
thread_unlock(0xF0A3A384) = 0
= 1
thread_setmystate_fast(0x4000000C, 0x00000000, 0x00000000, 0x00000000, 0x40000000, 0x1001A925, 0x1001A925, 0x060E7A00) = 0x00000000
thread_twakeup(108837, 268435456) = 0
= 268435456
thread_unlock(0xF0A3A384) = 0
= 1
thread_setmystate_fast(0x40000005, 0x00000000, 0x00000000, 0x00000000, 0x40000000, 0x0001A925, 0x00000000, 0x060E7A00) = 0x00000000
sendto(9, 0x201FFE48, 756, 0, 0x2001A3F0, 16) = 756
sendto(9, 0x2001A6D8, 204, 0, 0x2001A3F0, 16) = 204
sendto(9, 0x2001A6D8, 204, 0, 0x2001A3F0, 16) = 204
sendto(9, 0x2001A6D8, 204, 0, 0x2001A3F0, 16) = 204
sendto(9, 0x2001A6D8, 204, 0, 0x2001A3F0, 16) = 204
kread(11, "\0\001 ,\0\0\0 x", 8) = 8
kread(11, "\0\0\0\0\0\0\0\001\0\0\0".., 120) = 120
thread_twakeup(108837, 1073741824) = 0
= 1073741824
thread_unlock(0xF0A3A384) = 0
= 1
thread_setmystate_fast(0x4000000C, 0x00000000, 0x00000000, 0x00000000, 0x40000000, 0x1001A925, 0x1001A925, 0x060E7A00) = 0x00000000
thread_twakeup(108837, 268435456) = 0
= 268435456
thread_unlock(0xF0A3A384) = 0
= 1
thread_setmystate_fast(0x40000005, 0x00000000, 0x00000000, 0x00000000, 0x40000000, 0x0001A925, 0x00000000, 0x060E7A00) = 0x00000000
sendto(9, 0x202000B4, 324, 0, 0x2001A3F0, 16) = 324
sendto(9, 0x2001A6D8, 204, 0, 0x2001A3F0, 16) = 204
sendto(9, 0x2001A6D8, 204, 0, 0x2001A3F0, 16) = 204
sendto(9, 0x2001A6D8, 204, 0, 0x2001A3F0, 16) = 204
sendto(9, 0x2001A6D8, 204, 0, 0x2001A3F0, 16) = 204
kread(11, "\0\001 ,\0\0\0 8", 8) = 8
kread(11, " 0038C\b\0\0\0\007\0\0\0".., 56) = 56
thread_twakeup(108837, 1073741824) = 0
= 1073741824
thread_unlock(0xF0A3A384) = 0
= 1
thread_setmystate_fast(0x4000000C, 0x00000000, 0x00000000, 0x00000000, 0x40000000, 0x1001A925, 0x1001A925, 0x060E7A00) = 0x00000000
thread_twakeup(108837, 268435456) = 0
= 268435456
thread_unlock(0xF0A3A384) = 0
= 1
thread_setmystate_fast(0x40000005, 0x00000000, 0x00000000, 0x00000000, 0x40000000, 0x0001A925, 0x00000000, 0x060E7A00) = 0x00000000
sendto(9, 0x20200320, 260, 0, 0x2001A3F0, 16) = 260
sendto(9, 0x2001A6D8, 204, 0, 0x2001A3F0, 16) = 204
sendto(9, 0x2001A6D8, 204, 0, 0x2001A3F0, 16) = 204
sendto(9, 0x2001A6D8, 204, 0, 0x2001A3F0, 16) = 204
sendto(9, 0x2001A6D8, 204, 0, 0x2001A3F0, 16) = 204
kread(11, "\0\001 ,\0\0\0 8", 8) = 8
kread(11, " 0038F 0\0\0\007\0\0\0".., 56) = 56
thread_twakeup(108837, 1073741824) = 0
= 1073741824
thread_unlock(0xF0A3A384) = 0
= 1
thread_setmystate_fast(0x4000000C, 0x00000000, 0x00000000, 0x00000000, 0x40000000, 0x1001A925, 0x1001A925, 0x060E7A00) = 0x00000000
thread_twakeup(108837, 268435456) = 0
= 268435456
thread_unlock(0xF0A3A384) = 0
= 1
thread_setmystate_fast(0x40000005, 0x00000000, 0x00000000, 0x00000000, 0x40000000, 0x0001A925, 0x00000000, 0x060E7A00) = 0x00000000
sendto(9, 0x2020058C, 260, 0, 0x2001A3F0, 16) = 260
sendto(9, 0x2001A6D8, 204, 0, 0x2001A3F0, 16) = 204

The function "sendto" call is our application's routine. Hope for help and some suggestion, thanks.