locked_list.h adds macros: locked_list_empty, locked_list_first_entry etc.
parent
c6b2c32fe2
commit
ebe7d87ca4
|
|
@ -415,7 +415,7 @@ int fast_allocator_retry_reclaim(struct fast_allocator_context *acontext,
|
|||
return EAGAIN;
|
||||
}
|
||||
|
||||
for (i=0; i< acontext->allocator_array.count; i++)
|
||||
for (i=0; i<acontext->allocator_array.count; i++)
|
||||
{
|
||||
if (fast_mblock_reclaim(&acontext->allocator_array.
|
||||
allocators[i]->mblock, 0, &reclaim_count, NULL) == 0)
|
||||
|
|
|
|||
|
|
@ -48,6 +48,15 @@ extern "C" {
|
|||
PTHREAD_MUTEX_UNLOCK(&list->lock);
|
||||
}
|
||||
|
||||
static inline int locked_list_empty(FCLockedList *list)
|
||||
{
|
||||
int empty;
|
||||
PTHREAD_MUTEX_LOCK(&list->lock);
|
||||
empty = fc_list_empty(&list->head);
|
||||
PTHREAD_MUTEX_UNLOCK(&list->lock);
|
||||
return empty;
|
||||
}
|
||||
|
||||
static inline int locked_list_count(FCLockedList *list)
|
||||
{
|
||||
int count;
|
||||
|
|
@ -57,6 +66,24 @@ extern "C" {
|
|||
return count;
|
||||
}
|
||||
|
||||
#define locked_list_first_entry(list, type, member, var) \
|
||||
PTHREAD_MUTEX_LOCK(&(list)->lock); \
|
||||
var = fc_list_first_entry(&(list)->head, type, member); \
|
||||
PTHREAD_MUTEX_UNLOCK(&(list)->lock)
|
||||
|
||||
#define locked_list_last_entry(list, type, member, var) \
|
||||
PTHREAD_MUTEX_LOCK(&(list)->lock); \
|
||||
var = fc_list_last_entry(&(list)->head, type, member); \
|
||||
PTHREAD_MUTEX_UNLOCK(&(list)->lock)
|
||||
|
||||
#define locked_list_pop(list, type, member, var) \
|
||||
PTHREAD_MUTEX_LOCK(&(list)->lock); \
|
||||
var = fc_list_first_entry(&(list)->head, type, member); \
|
||||
if (var != NULL) { \
|
||||
fc_list_del_init(&var->member); \
|
||||
} \
|
||||
PTHREAD_MUTEX_UNLOCK(&(list)->lock)
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Reference in New Issue