Check again after acquiring rmutex. Avoids potential issue with
a duplicate pid coming in between initial check and rmutex.
if (mdb_pid_insert(pids, pid) == 0) {
if (mdb_reader_pid(env, Pidcheck, pid)) {
LOCK_MUTEX_R(env);
- for (j=i; j<rdrs; j++)
- if (mr[j].mr_pid == pid) {
- mr[j].mr_pid = 0;
- count++;
- }
+ if (mdb_reader_pid(env, Pidcheck, pid)) {
+ for (j=i; j<rdrs; j++)
+ if (mr[j].mr_pid == pid) {
+ mr[j].mr_pid = 0;
+ count++;
+ }
+ }
UNLOCK_MUTEX_R(env);
}
}