summary |
shortlog |
log |
commit | commitdiff |
review |
tree
raw |
patch |
inline | side by side (from parent 1:
39040a6)
If is_add=2, fail w/ return value -2 if the key exists instead of
overwriting the (key,value) pair.
Type: feature
Change-Id: I00a3c194a381c68090369c31d6c6f9870cfe0a62
Signed-off-by: Dave Barach <dave@barachs.net>
{
if (BV (clib_bihash_key_compare) (v->kvp[i].key, add_v->key))
{
{
if (BV (clib_bihash_key_compare) (v->kvp[i].key, add_v->key))
{
+ /* Add but do not overwrite? */
+ if (is_add == 2)
+ {
+ BV (clib_bihash_unlock_bucket) (b);
+ return (-2);
+ }
+
CLIB_MEMORY_BARRIER (); /* Add a delay */
clib_memcpy_fast (&(v->kvp[i]), add_v, sizeof (*add_v));
BV (clib_bihash_unlock_bucket) (b);
CLIB_MEMORY_BARRIER (); /* Add a delay */
clib_memcpy_fast (&(v->kvp[i]), add_v, sizeof (*add_v));
BV (clib_bihash_unlock_bucket) (b);