Home » U++ Library support » U++ MT-multithreading and servers » ARM threadind does not work
ARM threadind does not work [message #38426] |
Sat, 15 December 2012 11:00 |
Didier
Messages: 680 Registered: November 2008 Location: France
|
Contributor |
|
|
Hi all,
When compiling apps whith 'MT' falg set, the applications get stuck on a mutex:
#1 0x400bd138 in pthread_mutex_lock () from /lib/libpthread.so.0
#2 0x001295e4 in Upp::Mutex::Enter (this=0x50803d) at /users/didier/upp/uppsrc/Core/Mt.h:305
#3 0x00129624 in Upp::Mutex::Lock::Lock (this=0xbeed4b0c, s=...) at /users/didier/upp/uppsrc/Core/Mt.h:353
u#4 0x002a23f4 in Upp::StaticMutex::Initialize (this=0x506118) at /users/didier/upp/uppsrc/Core/Mt.cpp:643
#5 0x00129550 in Upp::StaticMutex::Get (this=0x506118) at /users/didier/upp/uppsrc/Core/Mt.h:380
#6 0x00129580 in Upp::StaticMutex::operator Upp::Mutex& (this=0x506118) at /users/didier/upp/uppsrc/Core/Mt.h:381
#7 0x002e0800 in Upp::AddModule (l=0x3ffa50, name=0x0) at /users/didier/upp/uppsrc/Core/t.cpp:98
#8 0x0000fbb0 in Upp::LNG_MODULE00_fn () at /users/didier/upp/uppsrc/Core/t.h:211
#9 0x0000fc2c in Upp::Callinit::Callinit (this=0x4141dd, fn=0xfb98 <Upp::LNG_MODULE00_fn()>, cpp=0x3479e8 "/users/didier/upp/uppsrc/Core/t.h", line=202)
at /users/didier/upp/uppsrc/Core/Defs.h:169
#10 0x0000fb18 in __static_initialization_and_destruction_0 (__initialize_p=1, __priority=65535) at /users/didier/upp/uppsrc/Core/t.h:202
#11 0x0000fb70 in global constructors keyed to CtrlLib.icpp(void) () at /users/didier/upp/uppsrc/CtrlLib/CtrlLib.icpp:20
#12 0x003474c0 in __libc_csu_init ()
#13 0x4043efb8 in __libc_start_main () from /lib/libc.so.6
#14 0x0000e338 in _start ()
I will be looking into it this WE but if someone has any idea I would appreciate it.
Apparently it get's stuck when taking the mutex on function start:
void AddModule(const LngEntry__* l, const char *name)
{
CriticalSection::Lock __(slng); *********** HERE *************
Array<LngModule>& ma = sMod();
LngModule& m = ma.Add();
m.name = name;
Vector<LngRec> *lr = NULL;
while(l->lang) {
if(l->lang == 1) {
CharS ids;
ids.s = l->text;
lr = &m.map.GetAdd(ids);
LngRec& r = lr->Add();
r.lang = LNG_('E','N','U','S');
r.text = GetENUSc(l->text);
}
else
if(l->text && *l->text) {
LngRec& r = lr->Add();
r.lang = l->lang;
r.text = l->text;
}
l++;
}
}
|
|
|
|
|
ARM threadind does not work
By: Didier on Sat, 15 December 2012 11:00
|
|
|
Re: ARM threadind does not work
By: Didier on Sat, 15 December 2012 18:16
|
|
|
Re: ARM threadind does not work
By: Didier on Sat, 15 December 2012 22:20
|
|
|
Re: ARM threadind does not work
By: Didier on Tue, 18 December 2012 21:46
|
|
|
Re: ARM threadind does not work
By: mirek on Fri, 28 December 2012 11:59
|
|
|
Re: ARM threadind does not work
By: Didier on Fri, 28 December 2012 14:40
|
|
|
Re: ARM threadind does not work
By: Novo on Mon, 31 December 2012 07:16
|
|
|
Re: ARM threadind does not work
By: Didier on Mon, 31 December 2012 12:09
|
|
|
Re: ARM threadind does not work
By: Zbych on Mon, 31 December 2012 12:42
|
|
|
Re: ARM threadind does not work
By: Didier on Tue, 01 January 2013 10:55
|
Goto Forum:
Current Time: Fri May 17 04:32:09 CEST 2024
Total time taken to generate the page: 0.02338 seconds
|