What interprocess blocking calls should I track?

I track the c strace/ h process ltracein the hope of finding and intercepting a call that checks and potentially activates some kind of global shared lock.

While I was considering and reading about several forms of interprocess blocking on Linux, I draw a space in what to look for.

At present, my only suspect is futex()that appears very early in the execution process.

Update0

There is some confusion about what I need. I keep track of an existing process for persistent interprocess memory calls or equivalent. I would like to know what system and library calls to look for. I am not going to call them myself, so it futex()will naturally appear, I am sure that many libraries will implement their blocking calls in terms of this, etc.

Update1

I need a list of function names or a link to documentation that I have to keep track of at ltraceand strace(and by pointing). Any other helpful tips on how to track and find a global lock in your mind would be great.

+5
4

valgrind, :

http://code.google.com/p/data-race-test/wiki/ThreadSanitizer

Helgrind

http://valgrind.org/docs/manual/hg-manual.html

Helgrind pthread . x86 amd64, - LOCK prefix .

, . pthread

+2

flock -

+2

glibc ~ >= 2.5 (glibc + nptl)

semaphores (last parameter to sem_init), more precisely, posix unnamed semaphores

posix mutexes (with PTHREAD_PROCESS_SHARED to pthread_mutexattr_setpshared)

posix named semaphores (got from sem_open/sem_unlink)

system v (sysv) semaphores: semget, semop

glibc 2.2, 2.3 linuxthreads uClibc System v (sysv) iterprocess.

upd1: IPC socker.

0
  • : flock, fcntl .

  • pthreads/sem_ *, , strace, futex . , .

  • - , - - , , , .

, "" .

0

All Articles