Fix a race condition that I introduced into sinvaladt.c during the recent
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 18 Jul 2008 14:45:48 +0000 (14:45 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 18 Jul 2008 14:45:48 +0000 (14:45 +0000)
commit8af14ffab6e5ec11faac41fd68f503f0898f7801
treeac3765a75098403253011c014f129e5622868cb5
parent2be79e5ffec190bbbb9260378fe0589929bf6ab0
Fix a race condition that I introduced into sinvaladt.c during the recent
rewrite.  When called from SIInsertDataEntries, SICleanupQueue releases
the write lock if it has to issue a kill() to signal some laggard backend.
That still seems like a good idea --- but it's possible that by the time
we get the lock back, there are no longer enough free message slots to
satisfy SIInsertDataEntries' requirement.  Must recheck, and repeat the
whole SICleanupQueue process if not.  Noted while reading code.
src/backend/storage/ipc/sinvaladt.c