trivial refactoring of WaitOnLock
От | Neil Conway |
---|---|
Тема | trivial refactoring of WaitOnLock |
Дата | |
Msg-id | 422E3EAC.9000403@samurai.com обсуждение исходный текст |
Список | pgsql-patches |
This patch refactors some code in WaitOnLock slightly. The old code was slow, and I believe it was off-by-one (it allocates one byte of memory more than needed). Barring any objections I'll apply this to HEAD later today. -Neil Index: src/backend/storage/lmgr/lock.c =================================================================== RCS file: /var/lib/cvs/pgsql/src/backend/storage/lmgr/lock.c,v retrieving revision 1.147 diff -c -r1.147 lock.c *** src/backend/storage/lmgr/lock.c 1 Mar 2005 21:14:59 -0000 1.147 --- src/backend/storage/lmgr/lock.c 8 Mar 2005 05:42:06 -0000 *************** *** 1076,1081 **** --- 1076,1082 ---- LockMethod lockMethodTable = LockMethods[lockmethodid]; char *new_status, *old_status; + size_t len; Assert(lockmethodid < NumLockMethods); *************** *** 1083,1091 **** locallock->lock, locallock->tag.mode); old_status = pstrdup(get_ps_display()); ! new_status = (char *) palloc(strlen(old_status) + 10); ! strcpy(new_status, old_status); ! strcat(new_status, " waiting"); set_ps_display(new_status); awaitedLock = locallock; --- 1084,1092 ---- locallock->lock, locallock->tag.mode); old_status = pstrdup(get_ps_display()); ! len = strlen(old_status); ! new_status = (char *) palloc(len + 8 + 1); ! sprintf(new_status, "%s waiting", old_status); set_ps_display(new_status); awaitedLock = locallock;
В списке pgsql-patches по дате отправления: