trivial refactoring of WaitOnLock - Mailing list pgsql-patches

From Neil Conway
Subject trivial refactoring of WaitOnLock
Date
Msg-id 422E3EAC.9000403@samurai.com
Whole thread Raw
List 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 by date:

Previous
From: Neil Conway
Date:
Subject: Re: fork() refactoring
Next
From: Mark Kirkwood
Date:
Subject: Re: Display Pg buffer cache (WIP)