[Ace-users] ACE_OS::mutex_lock condition
sachin
sachinprabh at gmail.com
Fri Nov 16 05:19:11 CST 2007
ACE VERSION: 5.5
HOST MACHINE and OPERATING SYSTEM: RHEL4.x
TARGET MACHINE and OPERATING SYSTEM, if different from HOST:
VxWorks6.6
COMPILER NAME AND VERSION (AND PATCHLEVEL): GNU 4.1.2
THE $ACE_ROOT/ace/config.h FILE: #include "ace/config-
vxworks6.6.h"
THE $ACE_ROOT/include/makeinclude/platform_macros.GNU FILE :
WIND_BASE=/home/systest/WindRiver31-GPP/vxworks-6.6
WIND_HOST_TYPE=x86-linux2
CPU=PPC32
GCC_VERSION=gcc-2.96
rtp =0
static_libs = 1
shared_libs = 0
include $(ACE_ROOT)/include/makeinclude/platform_vxworks6.6.GNU
CONTENTS OF $ACE_ROOT/bin/MakeProjectCreator/config/
default.features: NA
AREA/CLASS/EXAMPLE AFFECTED: SOCK_Test.cpp, MT_SOCK_Test.cpp,
Bound_Ptr_Test.cpp
DOES THE PROBLEM AFFECT: EXECUTION. ACE is affected.
SYNOPSIS: When SOCK_Test.o is downloaded and run on the vxWorks6.6
target, the task goes to pend state. It waits for the unavailable
mutex held by some other task.
DESCRIPTION: Build of ACE-5.5 for VxWorks6.6 is successful for GNU
compiler. When SOCK_Test.o modules are downloaded and executed on the
target, we have following observations.
1. When the module SOCK_Test.o is run with the entry point
run_main(0,0), the module run successfully and returns value '0'.
2. When the same module SOCK_Test.o is downloaded along with
main.o and it is run specifying the entry point ace_main(0,0), the
task goes into pend state. The successful '0' value is never return.
Tracing the task we found that, the control flow is stopped at
mutex_lock. It is at wait state for the mutex to get released.
REPEAT BY:
0x006a07c0 ace_main(int, char **)+0x20 : ace_os_main_i(int, char **)
()
0x00184cd4 ace_os_main_i(int, char **)+0xa8 : 0x0084bc94 (0x825ab0,
0x825ab4)
0x0084bc94 PatchArchInit+0x98 : 0x018779ec
()
0x018779ec run_main(int, char **)+0x224:
ACE_Thread_Manager::wait(const ACE_Tim
_Value *, int)
()
0x001ad560 ACE_Thread_Manager::wait(const ACE_Time_Value *, int)
+0xd4 : ACE_Con
ition_Thread_Mutex::wait(const ACE_Time_Value *)
()
0x001565d4 ACE_Condition_Thread_Mutex::wait(ACE_Thread_Mutex &, const
ACE_Time_
alue +0xf8 : pthread_cond_wait
()
0x0029075c pthread_cond_wait+0x208: semTake
()
0x002c37f0 semTake +0x138: semBTake ()
Thanks
Naazia
More information about the Ace-users
mailing list