[omniORB] pthreads for solaris, linux ... mach?
ERIKSSON,TOBIAS (A-Sweden,ex1)
tobias_eriksson@agilent.com
Fri, 17 Nov 2000 16:15:06 +0100
Hi
I had an error in my application and started to go through the stacktrace,
it came down to a method called ~omni_mutex(), I tried to look it up and
found out that there were a couple of files to choose from containing the
destructor ~omni_mutex(). There are :
mach.cc
nt.cc
posix.cc
solaris.cc
I guess that Linux (debian or Redhat) uses the posix.cc, is that correct?
If I look in that one there is only one line, and it says something like
this:
THROW_ERRORS(pthread_mutex_destroy(...
This method exists in /usr/include/pthread.h, but is as I understand a C-lib
method.
In my stacktrace, below, that method pthread_mutex_destroy() is not in the
stacktrace, and if is but isn't shown then it throws an exception, how is
that possible from a C-lib?
And how can a mutex raise an exception?
#0 0x401a3931 in kill () from /lib/libc.so.6
#1 0x40020ee9 in pthread_kill () from /lib/libpthread.so.0
#2 0x40021365 in raise () from /lib/libpthread.so.0
#3 0x401a4d28 in abort () from /lib/libc.so.6
#4 0x40146f58 in __terminate () from /usr/lib/libstdc++-libc6.1-2.so.3
#5 0x40146f75 in __terminate () from /usr/lib/libstdc++-libc6.1-2.so.3
#6 0x40147af4 in __throw () from /usr/lib/libstdc++-libc6.1-2.so.3
#7 0x4011f151 in omni_mutex::~omni_mutex ()
.
.
.
I don't understand how this works, could someone help me out.
Regards
Tobias