|
8 | 8 | *
|
9 | 9 | *
|
10 | 10 | * IDENTIFICATION
|
11 |
| - * $Header: /cvsroot/pgsql/src/backend/storage/lmgr/proc.c,v 1.72 2000/04/12 17:15:38 momjian Exp $ |
| 11 | + * $Header: /cvsroot/pgsql/src/backend/storage/lmgr/proc.c,v 1.72.2.1 2000/09/20 07:20:27 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.72 2000/04/12 17:15:38 momjian Exp $ |
| 50 | + * $Header: /cvsroot/pgsql/src/backend/storage/lmgr/proc.c,v 1.72.2.1 2000/09/20 07:20:27 inoue Exp $ |
51 | 51 | */
|
52 | 52 | #include<sys/time.h>
|
53 | 53 | #include<unistd.h>
|
@@ -326,18 +326,20 @@ GetOffWaitqueue(PROC *proc)
|
326 | 326 | if (proc->links.next!=INVALID_OFFSET)
|
327 | 327 | {
|
328 | 328 | intlockmode=proc->token;
|
| 329 | +LOCK*waitLock=proc->waitLock; |
329 | 330 |
|
330 |
| -Assert(proc->waitLock->waitProcs.size>0); |
| 331 | +Assert(waitLock); |
| 332 | +Assert(waitLock->waitProcs.size>0); |
331 | 333 | SHMQueueDelete(&(proc->links));
|
332 |
| ---proc->waitLock->waitProcs.size; |
333 |
| -Assert(proc->waitLock->nHolding>0); |
334 |
| -Assert(proc->waitLock->nHolding>proc->waitLock->nActive); |
335 |
| ---proc->waitLock->nHolding; |
336 |
| -Assert(proc->waitLock->holders[lockmode]>0); |
337 |
| ---proc->waitLock->holders[lockmode]; |
338 |
| -if (proc->waitLock->activeHolders[lockmode]== |
339 |
| -proc->waitLock->holders[lockmode]) |
340 |
| -proc->waitLock->waitMask &= ~(1 <<lockmode); |
| 334 | +--waitLock->waitProcs.size; |
| 335 | +Assert(waitLock->nHolding>0); |
| 336 | +Assert(waitLock->nHolding>proc->waitLock->nActive); |
| 337 | +--waitLock->nHolding; |
| 338 | +Assert(waitLock->holders[lockmode]>0); |
| 339 | +--waitLock->holders[lockmode]; |
| 340 | +if (waitLock->activeHolders[lockmode]==waitLock->holders[lockmode]) |
| 341 | +waitLock->waitMask &= ~(1 <<lockmode); |
| 342 | +ProcLockWakeup(&(waitLock->waitProcs),LOCK_LOCKMETHOD(*waitLock),waitLock); |
341 | 343 | getoffed= true;
|
342 | 344 | }
|
343 | 345 | SHMQueueElemInit(&(proc->links));
|
|