"What I have found in programming books, including
those by the late W. Richard Stevens (which I turn to most often)
is usually a good start, but never the whole story. But since this
is not a general programming text, I will focus on a single issue
in detail. This post will cover using semaphores.
"First, a little background on locks, in case you have never
used them. In *nix, process locks are implemented with the
semaphore system calls. Since I use child processes that share
memory, I have to implement semaphores. Threads use pthread_mutex
calls, which do essentially what these functions do, and then
some."