2 * mono-conc-hashtable.h: A mostly concurrent hashtable
5 * Rodrigo Kumpera (kumpera@gmail.com)
10 #ifndef __MONO_CONCURRENT_HASHTABLE_H__
11 #define __MONO_CONCURRENT_HASHTABLE_H__
13 #include <mono/utils/mono-publib.h>
14 #include <mono/utils/mono-compiler.h>
15 #include <mono/utils/mono-os-mutex.h>
18 typedef struct _MonoConcurrentHashTable MonoConcurrentHashTable
;
20 MONO_API MonoConcurrentHashTable
* mono_conc_hashtable_new (GHashFunc hash_func
, GEqualFunc key_equal_func
);
21 MONO_API MonoConcurrentHashTable
* mono_conc_hashtable_new_full (GHashFunc hash_func
, GEqualFunc key_equal_func
, GDestroyNotify key_destroy_func
, GDestroyNotify value_destroy_func
);
22 MONO_API
void mono_conc_hashtable_destroy (MonoConcurrentHashTable
*hash_table
);
23 MONO_API gpointer
mono_conc_hashtable_lookup (MonoConcurrentHashTable
*hash_table
, gpointer key
);
24 MONO_API gpointer
mono_conc_hashtable_insert (MonoConcurrentHashTable
*hash_table
, gpointer key
, gpointer value
);
25 MONO_API gpointer
mono_conc_hashtable_remove (MonoConcurrentHashTable
*hash_table
, gpointer key
);
26 MONO_API
void mono_conc_hashtable_foreach (MonoConcurrentHashTable
*hashtable
, GHFunc func
, gpointer userdata
);