[ace-users] Mutex : frustration with file-based shm implementation
Paul Grodt
pgrodt at tecore.com
Tue Jul 31 12:41:42 CDT 2007
Paul D. Grodt
TECORE Wireless Systems
Phone: +1 410 872 6225
Fax: +1 410 872 6010
email: pgrodt at tecore.com
THIS E-MAIL MAY CONTAIN PRIVILEGED, CONFIDENTIAL, COPYRIGHTED, OR OTHER
LEGALLY PROTECTED INFORMATION. IF YOU ARE NOT THE INTENDED RECIPIENT
(EVEN IF THE E-MAIL ADDRESS ABOVE IS YOURS), YOU MAY NOT USE, COPY OR
RETRANSMIT IT. IF YOU HAVE RECEIVED THIS BY MISTAKE, OR WISH TO BE
REMOVED FROM A MAILING LIST, PLEASE NOTIFY US BY RETURN E-MAIL AT
SYSADMIN at TECORE.COM, THEN DELETE. THANK YOU.
-----Original Message-----
From: Paul Grodt
Sent: Tuesday, July 31, 2007 1:31 PM
To: 'ace-users at cs.wustl.edu'
Subject: Mutex : frustration with file-based shm implementation
ACE VERSION: 5.5.8
HOST MACHINE and OPERATING SYSTEM:
i686 RHEL 4, 2.6.9-42.0.10.ELsmp
COMPILER NAME AND VERSION (AND PATCHLEVEL):
$ gcc -v
Using built-in specs.
Target: i386-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man
--infodir=
/usr/share/info --enable-shared --enable-threads=posix
--enable-checking=release
--with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions
--with-gxx-include-dir=/usr/include/c++/3.4.3 --enable-libgcj-multifile
--enable-languages=c,c++,java,f95 --enable-java-awt=gtk --disable-dssi
--with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre
--with-cpu=generic
--host=i386-redhat-linux
Thread model: posix
gcc version 4.1.0 20060515 (Red Hat 4.1.0-18)
THE $ACE_ROOT/ace/config.h FILE [if you use a link to a platform-
specific file, simply state which one]:
ace/config-linux.h
THE $ACE_ROOT/include/makeinclude/platform_macros.GNU FILE [if you
use a link to a platform-specific file, simply state which one
(unless this isn't used in this case, e.g., with Microsoft Visual
C++)]:
$(ACE_ROOT)/include/makeinclude/platform_linux.GNU
CONTENTS OF $ACE_ROOT/bin/MakeProjectCreator/config/default.features
(used by MPC when you generate your own makefiles):
DNE
AREA/CLASS/EXAMPLE AFFECTED:
Mutex
Problem affects my application execution
SYNOPSIS:
Frustration with file-based mutex implementation in ACE
DESCRIPTION:
For each named mutex I specify, a file is created under that path. I
don't
understand why this is the default behavior in Linux. I believe I have
it
traced to the line "ace/config-linux-common.h:35-39":
// Temporary fix because NPTL kernels do have shm_open but there is a
problem
// with shm_open/shm_unlink pairing in ACE which needs to be fixed when
I have time.
# if defined (ACE_HAS_SHM_OPEN)
# undef ACE_HAS_SHM_OPEN
# endif /* ACE_HAS_SHM_OPEN */
My searching may be off, but I could find no bugtracking or detailed
information related to this comment.
To get the files out of the way, I am currently using a wrapper function
in my
code to write all Mutexes to /tmp/.ACE-*
I seem to be getting errors on followup executions when multiple users
run on a
system (I believe one of our programs is also creating mutexes while in
SUID
mode), and further errors on followup executions following abnormal
program
termination (though I suspect the latter is normal Linux behavior).
Can I safely deactivate this code segment, or what development must be
done to
resolve this issue in ACE?
Paul Grodt
More information about the Ace-users
mailing list