main: Move hashLockMutex/hashUnlockMutex to header and inline

Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
This commit is contained in:
Thomas Helland 2017-05-21 15:17:26 +02:00 committed by Timothy Arceri
parent f203a9f7d1
commit 1575a8146a
2 changed files with 40 additions and 45 deletions

View File

@ -35,7 +35,6 @@
*/
#include "glheader.h"
#include "imports.h"
#include "hash.h"
#include "util/hash_table.h"
@ -52,18 +51,6 @@
*/
#define DELETED_KEY_VALUE 1
/**
* 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;
};
/** @{
* Mapping from our use of GLuint as both the key and the hash value to the
* hash_table.h API
@ -230,36 +217,6 @@ _mesa_HashLookupLocked(struct _mesa_HashTable *table, GLuint key)
}
/**
* 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.
*/
void
_mesa_HashLockMutex(struct _mesa_HashTable *table)
{
assert(table);
mtx_lock(&table->Mutex);
}
/**
* Unlock the hash table mutex.
*
* \param table the hash table.
*/
void
_mesa_HashUnlockMutex(struct _mesa_HashTable *table)
{
assert(table);
mtx_unlock(&table->Mutex);
}
static inline void
_mesa_HashInsert_unlocked(struct _mesa_HashTable *table, GLuint key, void *data)
{

View File

@ -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);