@ -205,15 +205,16 @@ SimpleLruInit(SlruCtl ctl, const char *name, int nslots, int nlsns,
shared - > page_lru_count = ( int * ) ( ptr + offset ) ;
shared - > page_lru_count = ( int * ) ( ptr + offset ) ;
offset + = MAXALIGN ( nslots * sizeof ( int ) ) ;
offset + = MAXALIGN ( nslots * sizeof ( int ) ) ;
/* Initialize LWLocks */
shared - > buffer_locks = ( LWLockPadded * ) ( ptr + offset ) ;
offset + = MAXALIGN ( nslots * sizeof ( LWLockPadded ) ) ;
if ( nlsns > 0 )
if ( nlsns > 0 )
{
{
shared - > group_lsn = ( XLogRecPtr * ) ( ptr + offset ) ;
shared - > group_lsn = ( XLogRecPtr * ) ( ptr + offset ) ;
offset + = MAXALIGN ( nslots * nlsns * sizeof ( XLogRecPtr ) ) ;
offset + = MAXALIGN ( nslots * nlsns * sizeof ( XLogRecPtr ) ) ;
}
}
/* Initialize LWLocks */
shared - > buffer_locks = ( LWLockPadded * ) ShmemAlloc ( sizeof ( LWLockPadded ) * nslots ) ;
Assert ( strlen ( name ) + 1 < SLRU_MAX_NAME_LENGTH ) ;
Assert ( strlen ( name ) + 1 < SLRU_MAX_NAME_LENGTH ) ;
strlcpy ( shared - > lwlock_tranche_name , name , SLRU_MAX_NAME_LENGTH ) ;
strlcpy ( shared - > lwlock_tranche_name , name , SLRU_MAX_NAME_LENGTH ) ;
shared - > lwlock_tranche_id = tranche_id ;
shared - > lwlock_tranche_id = tranche_id ;
@ -230,6 +231,9 @@ SimpleLruInit(SlruCtl ctl, const char *name, int nslots, int nlsns,
shared - > page_lru_count [ slotno ] = 0 ;
shared - > page_lru_count [ slotno ] = 0 ;
ptr + = BLCKSZ ;
ptr + = BLCKSZ ;
}
}
/* Should fit to estimated shmem size */
Assert ( ptr - ( char * ) shared < = SimpleLruShmemSize ( nslots , nlsns ) ) ;
}
}
else
else
Assert ( found ) ;
Assert ( found ) ;