Add logic to object array typecheck to handle arrays of unmanaged pointers (#14733)
[mono-project.git] / mono / utils / mono-conc-hashtable.h
blob8c3c033ab568f3f10dd8f6107c0fb33f69f735d8
1 /**
2 * \file
3 * A mostly concurrent hashtable
5 * Author:
6 * Rodrigo Kumpera (kumpera@gmail.com)
8 * (C) 2014 Xamarin
9 */
11 #ifndef __MONO_CONCURRENT_HASHTABLE_H__
12 #define __MONO_CONCURRENT_HASHTABLE_H__
14 #include <mono/utils/mono-publib.h>
15 #include <mono/utils/mono-compiler.h>
16 #include <mono/utils/mono-os-mutex.h>
17 #include <glib.h>
19 typedef struct _MonoConcurrentHashTable MonoConcurrentHashTable;
21 MONO_API MonoConcurrentHashTable* mono_conc_hashtable_new (GHashFunc hash_func, GEqualFunc key_equal_func);
22 MONO_API MonoConcurrentHashTable* mono_conc_hashtable_new_full (GHashFunc hash_func, GEqualFunc key_equal_func, GDestroyNotify key_destroy_func, GDestroyNotify value_destroy_func);
23 MONO_API void mono_conc_hashtable_destroy (MonoConcurrentHashTable *hash_table);
24 MONO_API gpointer mono_conc_hashtable_lookup (MonoConcurrentHashTable *hash_table, gpointer key);
25 MONO_API gpointer mono_conc_hashtable_insert (MonoConcurrentHashTable *hash_table, gpointer key, gpointer value);
26 MONO_API gpointer mono_conc_hashtable_remove (MonoConcurrentHashTable *hash_table, gpointer key);
27 MONO_API void mono_conc_hashtable_foreach (MonoConcurrentHashTable *hashtable, GHFunc func, gpointer userdata);
28 MONO_API void mono_conc_hashtable_foreach_steal (MonoConcurrentHashTable *hashtable, GHRFunc func, gpointer userdata);
30 #endif