fast_mblock suport alloc and free object

pull/4/head
yuqing 2015-06-15 20:33:14 +08:00
parent 8ace700d0b
commit bcd00f4079
3 changed files with 38 additions and 5 deletions

View File

@ -1,4 +1,9 @@
Version 1.15 2015-06-15
* fast_mblock.c support none lock
* ioevent support set timeout
* fast_mblock suport alloc and free object
Version 1.14 2015-06-12
* fast_task_info support set_buffer_size and realloc_buffer
* use file lock when write logger header
@ -6,8 +11,6 @@ Version 1.14 2015-06-12
* macro FDFS_WRITE_BUFF_SIZE change to FAST_WRITE_BUFF_SIZE
* logger.c call log_check_rotate in lock
* bug fixed: log header correctly when rotate
* fast_mblock.c support none lock
* ioevent support set timeout
Version 1.13 2015-02-27
* support php extension

View File

@ -1,5 +1,5 @@
Name: libfastcommon
Version: 1.0.14
Version: 1.0.15
Release: 1%{?dist}
Summary: c common functions library extracted from my open source projects FastDFS
License: GPL

View File

@ -88,11 +88,41 @@ free a node (put a node to the mblock)
parameters:
mblock: the mblock pointer
pNode: the node to free
return the alloced node, return NULL if fail
return 0 for success, return none zero if fail
*/
int fast_mblock_free(struct fast_mblock_man *mblock, \
int fast_mblock_free(struct fast_mblock_man *mblock,
struct fast_mblock_node *pNode);
/**
alloc a object from the mblock
parameters:
mblock: the mblock pointer
return the alloced object, return NULL if fail
*/
static inline void *fast_mblock_alloc_object(struct fast_mblock_man *mblock)
{
struct fast_mblock_node *node;
node = fast_mblock_alloc(mblock);
if (node == NULL)
{
return NULL;
}
return node->data;
}
/**
free a object (put the object to the mblock)
parameters:
mblock: the mblock pointer
object: the object to free
return 0 for success, return none zero if fail
*/
static inline int fast_mblock_free_object(struct fast_mblock_man *mblock,
void *object)
{
return fast_mblock_free(mblock, fast_mblock_to_node_ptr(object));
}
/**
get node count of the mblock
parameters: