id_dup_data


Description:

[ Version ( since = "2.34" ) ]
public G id_dup_data (Quark key_id, DuplicateFunc<G> dup_func)

This is a variant of id_get_data which returns a 'duplicate' of the value.

dup_func defines the meaning of 'duplicate' in this context, it could e.g. take a reference on a ref-counted object.

If the key_id is not set in the datalist then dup_func will be called with a null argument.

Note that dup_func is called while the datalist is locked, so it is not allowed to read or modify the datalist.

This function can be useful to avoid races when multiple threads are using the same datalist and the same key.

Parameters:

key_id

the Quark identifying a data element

dup_func

function to duplicate the old value

datalist

location of a datalist

user_data

passed as user_data to dup_func

Returns:

the result of calling dup_func on the value associated with key_id in datalist, or null if not set. If dup_func is null, the value is returned unmodified.