@ -93,7 +93,6 @@ typedef struct DSMRegistryEntry
{
{
char name [ NAMEDATALEN ] ;
char name [ NAMEDATALEN ] ;
DSMREntryType type ;
DSMREntryType type ;
bool initialized ;
union
union
{
{
NamedDSMState dsm ;
NamedDSMState dsm ;
@ -217,7 +216,6 @@ GetNamedDSMSegment(const char *name, size_t size,
dsm_segment * seg ;
dsm_segment * seg ;
entry - > type = DSMR_ENTRY_TYPE_DSM ;
entry - > type = DSMR_ENTRY_TYPE_DSM ;
entry - > initialized = false ;
/* Initialize the segment. */
/* Initialize the segment. */
seg = dsm_create ( size , 0 ) ;
seg = dsm_create ( size , 0 ) ;
@ -230,21 +228,13 @@ GetNamedDSMSegment(const char *name, size_t size,
if ( init_callback )
if ( init_callback )
( * init_callback ) ( ret ) ;
( * init_callback ) ( ret ) ;
entry - > initialized = true ;
}
}
else if ( entry - > type ! = DSMR_ENTRY_TYPE_DSM )
else if ( entry - > type ! = DSMR_ENTRY_TYPE_DSM )
ereport ( ERROR ,
ereport ( ERROR ,
( errmsg ( " requested DSM segment \" %s \" does not match type of existing entry " ,
( errmsg ( " requested DSM segment does not match type of existing entry " ) ) ) ;
name ) ) ) ;
else if ( ! entry - > initialized )
ereport ( ERROR ,
( errmsg ( " requested DSM segment \" %s \" failed initialization " ,
name ) ) ) ;
else if ( entry - > dsm . size ! = size )
else if ( entry - > dsm . size ! = size )
ereport ( ERROR ,
ereport ( ERROR ,
( errmsg ( " requested DSM segment \" %s \" does not match size of existing entry " ,
( errmsg ( " requested DSM segment size does not match size of existing segment " ) ) ) ;
name ) ) ) ;
else
else
{
{
NamedDSMState * state = & entry - > dsm ;
NamedDSMState * state = & entry - > dsm ;
@ -307,7 +297,6 @@ GetNamedDSA(const char *name, bool *found)
NamedDSAState * state = & entry - > dsa ;
NamedDSAState * state = & entry - > dsa ;
entry - > type = DSMR_ENTRY_TYPE_DSA ;
entry - > type = DSMR_ENTRY_TYPE_DSA ;
entry - > initialized = false ;
/* Initialize the LWLock tranche for the DSA. */
/* Initialize the LWLock tranche for the DSA. */
state - > tranche = LWLockNewTrancheId ( name ) ;
state - > tranche = LWLockNewTrancheId ( name ) ;
@ -319,17 +308,10 @@ GetNamedDSA(const char *name, bool *found)
/* Store handle for other backends to use. */
/* Store handle for other backends to use. */
state - > handle = dsa_get_handle ( ret ) ;
state - > handle = dsa_get_handle ( ret ) ;
entry - > initialized = true ;
}
}
else if ( entry - > type ! = DSMR_ENTRY_TYPE_DSA )
else if ( entry - > type ! = DSMR_ENTRY_TYPE_DSA )
ereport ( ERROR ,
ereport ( ERROR ,
( errmsg ( " requested DSA \" %s \" does not match type of existing entry " ,
( errmsg ( " requested DSA does not match type of existing entry " ) ) ) ;
name ) ) ) ;
else if ( ! entry - > initialized )
ereport ( ERROR ,
( errmsg ( " requested DSA \" %s \" failed initialization " ,
name ) ) ) ;
else
else
{
{
NamedDSAState * state = & entry - > dsa ;
NamedDSAState * state = & entry - > dsa ;
@ -390,7 +372,6 @@ GetNamedDSHash(const char *name, const dshash_parameters *params, bool *found)
dsa_area * dsa ;
dsa_area * dsa ;
entry - > type = DSMR_ENTRY_TYPE_DSH ;
entry - > type = DSMR_ENTRY_TYPE_DSH ;
entry - > initialized = false ;
/* Initialize the LWLock tranche for the hash table. */
/* Initialize the LWLock tranche for the hash table. */
dsh_state - > tranche = LWLockNewTrancheId ( name ) ;
dsh_state - > tranche = LWLockNewTrancheId ( name ) ;
@ -408,17 +389,10 @@ GetNamedDSHash(const char *name, const dshash_parameters *params, bool *found)
/* Store handles for other backends to use. */
/* Store handles for other backends to use. */
dsh_state - > dsa_handle = dsa_get_handle ( dsa ) ;
dsh_state - > dsa_handle = dsa_get_handle ( dsa ) ;
dsh_state - > dsh_handle = dshash_get_hash_table_handle ( ret ) ;
dsh_state - > dsh_handle = dshash_get_hash_table_handle ( ret ) ;
entry - > initialized = true ;
}
}
else if ( entry - > type ! = DSMR_ENTRY_TYPE_DSH )
else if ( entry - > type ! = DSMR_ENTRY_TYPE_DSH )
ereport ( ERROR ,
ereport ( ERROR ,
( errmsg ( " requested DSHash \" %s \" does not match type of existing entry " ,
( errmsg ( " requested DSHash does not match type of existing entry " ) ) ) ;
name ) ) ) ;
else if ( ! entry - > initialized )
ereport ( ERROR ,
( errmsg ( " requested DSHash \" %s \" failed initialization " ,
name ) ) ) ;
else
else
{
{
NamedDSHState * dsh_state = & entry - > dsh ;
NamedDSHState * dsh_state = & entry - > dsh ;