diff options
author | Thomas Helland <[email protected]> | 2017-05-21 15:17:26 +0200 |
---|---|---|
committer | Timothy Arceri <[email protected]> | 2017-05-22 09:19:24 +1000 |
commit | 1575a8146a33bfddb2e498ce77fa0ca8f0f0c85e (patch) | |
tree | 27d65e1ee5cedafae5132b596118ea6f75814afc /src/mesa/main/hash.h | |
parent | f203a9f7d1a7fc4cf41b35a477eb1f3699418fe3 (diff) |
main: Move hashLockMutex/hashUnlockMutex to header and inline
Reviewed-by: Timothy Arceri <[email protected]>
Diffstat (limited to 'src/mesa/main/hash.h')
-rw-r--r-- | src/mesa/main/hash.h | 42 |
1 files changed, 40 insertions, 2 deletions
diff --git a/src/mesa/main/hash.h b/src/mesa/main/hash.h index 9eb0f0eac6c..b44959eb13e 100644 --- a/src/mesa/main/hash.h +++ b/src/mesa/main/hash.h @@ -33,8 +33,21 @@ #include "glheader.h" +#include "imports.h" +/** + * The hash table data structure. + */ +struct _mesa_HashTable { + struct hash_table *ht; + GLuint MaxKey; /**< highest key inserted so far */ + mtx_t Mutex; /**< mutual exclusion lock */ + GLboolean InDeleteAll; /**< Debug check */ + /** Value that would be in the table for DELETED_KEY_VALUE. */ + void *deleted_key_data; +}; + extern struct _mesa_HashTable *_mesa_NewHashTable(void); extern void _mesa_DeleteHashTable(struct _mesa_HashTable *table); @@ -45,9 +58,34 @@ extern void _mesa_HashInsert(struct _mesa_HashTable *table, GLuint key, void *da extern void _mesa_HashRemove(struct _mesa_HashTable *table, GLuint key); -extern void _mesa_HashLockMutex(struct _mesa_HashTable *table); +/** + * Lock the hash table mutex. + * + * This function should be used when multiple objects need + * to be looked up in the hash table, to avoid having to lock + * and unlock the mutex each time. + * + * \param table the hash table. + */ +static inline void +_mesa_HashLockMutex(struct _mesa_HashTable *table) +{ + assert(table); + mtx_lock(&table->Mutex); +} + -extern void _mesa_HashUnlockMutex(struct _mesa_HashTable *table); +/** + * Unlock the hash table mutex. + * + * \param table the hash table. + */ +static inline void +_mesa_HashUnlockMutex(struct _mesa_HashTable *table) +{ + assert(table); + mtx_unlock(&table->Mutex); +} extern void *_mesa_HashLookupLocked(struct _mesa_HashTable *table, GLuint key); |