[ace-users] Files created for USYNC_PROCESS mutexes

Paul Grodt pgrodt at tecore.com
Tue Sep 11 09:02:01 CDT 2007


>On pthread based *nix systems you will always be stuck with the files
for >process shared objects like mutexes and semaphores because memory
mapped >files are required there to implement the process sharing.

If I'm not mistaken, this is the same issue my group is stuck with.
Memory mapped files shouldn't be required, it just is for now.

http://deuce.doc.wustl.edu/bugzilla/show_bug.cgi?id=2166.

The general solution, as Doug mentioned is to just use ACE_Process_Mutex
type.  This uses System V semaphores under RHES which are maintained by
the kernel. (My group just can't because we're using a ridiculous number
of them and by default, you only get a few hundred with System V IPC).

If by chance you're in the same boat as us, and must use pthread
semaphores, our solution to the general annoyance was to prepend the
name of each mutex with a directory path so they could be relocated
someplace discrete and not clog up the bin directory.

>In short; successful implementation of process shared objects on these
>platforms absolutely requires you to set up your application(s)
carefully >where you designate the longest 'living' process as the
object owner so it >can clean up after all the object 'users' have
terminated.

And this will be an issue if you are mapping to files or not, by design,
interprocess mutexes must either be persistent, or intelligent.


Paul D. Grodt
 
TECORE Wireless Systems 

Phone:      +1 410 872 6225
Fax:          +1 410 872 6010
email:   pgrodt at tecore.com



More information about the Ace-users mailing list