diff options
Diffstat (limited to 'contrib/userlock/user_locks.c')
-rw-r--r-- | contrib/userlock/user_locks.c | 71 |
1 files changed, 36 insertions, 35 deletions
diff --git a/contrib/userlock/user_locks.c b/contrib/userlock/user_locks.c index efc9b0a4644..fe8abcac0cf 100644 --- a/contrib/userlock/user_locks.c +++ b/contrib/userlock/user_locks.c @@ -22,79 +22,80 @@ #include "user_locks.h" -#define USER_LOCKS_TABLE_ID 0 +#define USER_LOCKS_TABLE_ID 0 -extern Oid MyDatabaseId; +extern Oid MyDatabaseId; int user_lock(unsigned int id1, unsigned int id2, LOCKT lockt) { - LOCKTAG tag; + LOCKTAG tag; - memset(&tag,0,sizeof(LOCKTAG)); - tag.relId = 0; - tag.dbId = MyDatabaseId; - tag.tupleId.ip_blkid.bi_hi = id2 >> 16; - tag.tupleId.ip_blkid.bi_lo = id2 & 0xffff; - tag.tupleId.ip_posid = (unsigned short) (id1 & 0xffff); + memset(&tag, 0, sizeof(LOCKTAG)); + tag.relId = 0; + tag.dbId = MyDatabaseId; + tag.tupleId.ip_blkid.bi_hi = id2 >> 16; + tag.tupleId.ip_blkid.bi_lo = id2 & 0xffff; + tag.tupleId.ip_posid = (unsigned short) (id1 & 0xffff); - return LockAcquire(USER_LOCKS_TABLE_ID, &tag, lockt); + return LockAcquire(USER_LOCKS_TABLE_ID, &tag, lockt); } int user_unlock(unsigned int id1, unsigned int id2, LOCKT lockt) { - LOCKTAG tag; - - memset(&tag, 0,sizeof(LOCKTAG)); - tag.relId = 0; - tag.dbId = MyDatabaseId; - tag.tupleId.ip_blkid.bi_hi = id2 >> 16; - tag.tupleId.ip_blkid.bi_lo = id2 & 0xffff; - tag.tupleId.ip_posid = (unsigned short) (id1 & 0xffff); - - return LockRelease(USER_LOCKS_TABLE_ID, &tag, lockt); + LOCKTAG tag; + + memset(&tag, 0, sizeof(LOCKTAG)); + tag.relId = 0; + tag.dbId = MyDatabaseId; + tag.tupleId.ip_blkid.bi_hi = id2 >> 16; + tag.tupleId.ip_blkid.bi_lo = id2 & 0xffff; + tag.tupleId.ip_posid = (unsigned short) (id1 & 0xffff); + + return LockRelease(USER_LOCKS_TABLE_ID, &tag, lockt); } int user_write_lock(unsigned int id1, unsigned int id2) { - return user_lock(id1, id2, WRITE_LOCK); + return user_lock(id1, id2, WRITE_LOCK); } int user_write_unlock(unsigned int id1, unsigned int id2) { - return user_unlock(id1, id2, WRITE_LOCK); + return user_unlock(id1, id2, WRITE_LOCK); } int user_write_lock_oid(Oid oid) { - return user_lock(0, oid, WRITE_LOCK); + return user_lock(0, oid, WRITE_LOCK); } int user_write_unlock_oid(Oid oid) { - return user_unlock(0, oid, WRITE_LOCK); + return user_unlock(0, oid, WRITE_LOCK); } int user_unlock_all() { - PROC *proc; - SHMEM_OFFSET location; - - ShmemPIDLookup(getpid(),&location); - if (location == INVALID_OFFSET) { - elog(NOTICE, "UserUnlockAll: unable to get proc ptr"); - return -1; - } - - proc = (PROC *) MAKE_PTR(location); - return LockReleaseAll(USER_LOCKS_TABLE_ID, &proc->lockQueue); + PROC *proc; + SHMEM_OFFSET location; + + ShmemPIDLookup(getpid(), &location); + if (location == INVALID_OFFSET) + { + elog(NOTICE, "UserUnlockAll: unable to get proc ptr"); + return -1; + } + + proc = (PROC *) MAKE_PTR(location); + return LockReleaseAll(USER_LOCKS_TABLE_ID, &proc->lockQueue); } /* end of file */ |