OSDN Git Service

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)
commitdc02a4814a90be9f948bc921254c35b63d764dcc
tree9a9e2316a8041936d0bbb0dc8c23cf9b53b8c434
parenta4775a80fd444162ff878d2e945c8af7ba37eb89
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