projects
/
awesomized
/
libmemcached
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
More on clone/cleanup callbacks
[awesomized/libmemcached]
/
lib
/
memcached.c
diff --git
a/lib/memcached.c
b/lib/memcached.c
index 24c3b8bc4048198c60e10e581f371461490a3563..5471eba6e8b16c743f86075a867268cded2dc7ea 100644
(file)
--- a/
lib/memcached.c
+++ b/
lib/memcached.c
@@
-35,6
+35,9
@@
void memcached_free(memcached_st *ptr)
memcached_server_list_free(ptr->hosts);
memcached_result_free(&ptr->result);
memcached_server_list_free(ptr->hosts);
memcached_result_free(&ptr->result);
+ if (ptr->on_cleanup)
+ ptr->on_cleanup(ptr);
+
if (ptr->is_allocated == MEMCACHED_ALLOCATED)
free(ptr);
else
if (ptr->is_allocated == MEMCACHED_ALLOCATED)
free(ptr);
else
@@
-52,7
+55,14
@@
memcached_st *memcached_clone(memcached_st *clone, memcached_st *ptr)
memcached_st *new_clone;
if (ptr == NULL)
memcached_st *new_clone;
if (ptr == NULL)
- return memcached_create(clone);
+ {
+ new_clone= memcached_create(clone);
+
+ if (ptr->on_clone)
+ ptr->on_clone(NULL, new_clone);
+
+ return new_clone;
+ }
if (ptr->is_allocated == MEMCACHED_USED)
{
if (ptr->is_allocated == MEMCACHED_USED)
{
@@
-82,6
+92,10
@@
memcached_st *memcached_clone(memcached_st *clone, memcached_st *ptr)
new_clone->poll_timeout= ptr->poll_timeout;
new_clone->distribution= ptr->distribution;
new_clone->hash= ptr->hash;
new_clone->poll_timeout= ptr->poll_timeout;
new_clone->distribution= ptr->distribution;
new_clone->hash= ptr->hash;
+ new_clone->user_data= ptr->user_data;
+
+ if (ptr->on_clone)
+ ptr->on_clone(ptr, new_clone);
return new_clone;
}
return new_clone;
}