id_dup_data
Description:
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 |
Returns:
the result of calling |