|
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)); |
|