e.val = 0;
ok = CHashSearch(chash, &e);
if (!ok)
+ {
+ uint64 retry = 1;
elog(LOG, "search %u: not found", i);
- else if (e.val != MyProcPid)
+ while (!CHashSearch(chash, &e))
+ ++retry;
+ elog(LOG, "search %u: eventually found it after "
+ UINT64_FORMAT " retries", i, retry);
+ }
+ if (e.val != MyProcPid)
elog(LOG, "search %u: expected %u found %u", i, (unsigned) MyProcPid, e.val);
}
e.key = seed | i;
ok = CHashDelete(chash, &e);
if (!ok)
+ {
+ uint64 retry = 1;
elog(LOG, "delete %u: not found", i);
+ while (!CHashDelete(chash, &e))
+ ++retry;
+ elog(LOG, "delete %u: eventually deleted it after "
+ UINT64_FORMAT " retries", i, retry);
+ }
}
PG_RETURN_VOID();