off-by-one is true, but I am not sure if the revised code is faster.
sprintf() need the extra job to parse the format. In win32, I am sure it is
much slower.

"Neil Conway" <[EMAIL PROTECTED]> ???? news:[EMAIL PROTECTED]
> 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;
>


----------------------------------------------------------------------------
----


>
> ---------------------------(end of broadcast)---------------------------
> TIP 2: you can get off all lists at once with the unregister command
>     (send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])
>



---------------------------(end of broadcast)---------------------------
TIP 6: Have you searched our list archives?

               http://archives.postgresql.org

Reply via email to