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 Version 1.14 2015-06-12
* fast_task_info support set_buffer_size and realloc_buffer * fast_task_info support set_buffer_size and realloc_buffer
* use file lock when write logger header * 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 * macro FDFS_WRITE_BUFF_SIZE change to FAST_WRITE_BUFF_SIZE
* logger.c call log_check_rotate in lock * logger.c call log_check_rotate in lock
* bug fixed: log header correctly when rotate * bug fixed: log header correctly when rotate
* fast_mblock.c support none lock
* ioevent support set timeout
Version 1.13 2015-02-27 Version 1.13 2015-02-27
* support php extension * support php extension

View File

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

View File

@ -88,11 +88,41 @@ free a node (put a node to the mblock)
parameters: parameters:
mblock: the mblock pointer mblock: the mblock pointer
pNode: the node to free 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); 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 get node count of the mblock
parameters: parameters: