|
8 | 8 | *
|
9 | 9 | *
|
10 | 10 | * IDENTIFICATION
|
11 |
| - * $Header: /cvsroot/pgsql/src/backend/storage/lmgr/proc.c,v 1.76 2000/06/28 03:32:07 tgl Exp $ |
| 11 | + * $Header: /cvsroot/pgsql/src/backend/storage/lmgr/proc.c,v 1.77 2000/07/31 01:16:24 inoue Exp $ |
12 | 12 | *
|
13 | 13 | *-------------------------------------------------------------------------
|
14 | 14 | */
|
|
47 | 47 | *This is so that we can support more backends. (system-wide semaphore
|
48 | 48 | *sets run out pretty fast.) -ay 4/95
|
49 | 49 | *
|
50 |
| - * $Header: /cvsroot/pgsql/src/backend/storage/lmgr/proc.c,v 1.76 2000/06/28 03:32:07 tgl Exp $ |
| 50 | + * $Header: /cvsroot/pgsql/src/backend/storage/lmgr/proc.c,v 1.77 2000/07/31 01:16:24 inoue Exp $ |
51 | 51 | */
|
52 | 52 | #include<sys/time.h>
|
53 | 53 | #include<unistd.h>
|
@@ -322,18 +322,20 @@ GetOffWaitqueue(PROC *proc)
|
322 | 322 | if (proc->links.next!=INVALID_OFFSET)
|
323 | 323 | {
|
324 | 324 | intlockmode=proc->token;
|
| 325 | +LOCK*waitLock=proc->waitLock; |
325 | 326 |
|
326 |
| -Assert(proc->waitLock->waitProcs.size>0); |
| 327 | +Assert(waitLock); |
| 328 | +Assert(waitLock->waitProcs.size>0); |
327 | 329 | SHMQueueDelete(&(proc->links));
|
328 |
| ---proc->waitLock->waitProcs.size; |
329 |
| -Assert(proc->waitLock->nHolding>0); |
330 |
| -Assert(proc->waitLock->nHolding>proc->waitLock->nActive); |
331 |
| ---proc->waitLock->nHolding; |
332 |
| -Assert(proc->waitLock->holders[lockmode]>0); |
333 |
| ---proc->waitLock->holders[lockmode]; |
334 |
| -if (proc->waitLock->activeHolders[lockmode]== |
335 |
| -proc->waitLock->holders[lockmode]) |
336 |
| -proc->waitLock->waitMask &= ~(1 <<lockmode); |
| 330 | +--waitLock->waitProcs.size; |
| 331 | +Assert(waitLock->nHolding>0); |
| 332 | +Assert(waitLock->nHolding>proc->waitLock->nActive); |
| 333 | +--waitLock->nHolding; |
| 334 | +Assert(waitLock->holders[lockmode]>0); |
| 335 | +--waitLock->holders[lockmode]; |
| 336 | +if (waitLock->activeHolders[lockmode]==waitLock->holders[lockmode]) |
| 337 | +waitLock->waitMask &= ~(1 <<lockmode); |
| 338 | +ProcLockWakeup(&(waitLock->waitProcs),LOCK_LOCKMETHOD(*waitLock),waitLock); |
337 | 339 | getoffed= true;
|
338 | 340 | }
|
339 | 341 | SHMQueueElemInit(&(proc->links));
|
|