diff options
author | Yehuda Sadeh <yehuda@inktank.com> | 2013-10-03 11:49:33 -0700 |
---|---|---|
committer | Yehuda Sadeh <yehuda@inktank.com> | 2013-10-03 11:49:33 -0700 |
commit | 24b734fab96fc1f111fc4cf1bb3155831d9933a4 (patch) | |
tree | 2706f2fa9334789708994ae53e37384a1a454760 /src/librados/PoolAsyncCompletionImpl.h | |
parent | b032931dc760f2a9baa7879f422caf8d9281e6c4 (diff) | |
download | ceph-wip-6444.tar.gz |
librados: drop reference to completion in container destructorwip-6444
Move the PoolAsyncCompletionImpl reference drop from
C_PoolAsync_Safe::finish() to ~C_PoolAsyncSafe(), as finish() is only
called when the async request is actually sent.
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
Diffstat (limited to 'src/librados/PoolAsyncCompletionImpl.h')
-rw-r--r-- | src/librados/PoolAsyncCompletionImpl.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/librados/PoolAsyncCompletionImpl.h b/src/librados/PoolAsyncCompletionImpl.h index efb89641466..120f6d9fcc6 100644 --- a/src/librados/PoolAsyncCompletionImpl.h +++ b/src/librados/PoolAsyncCompletionImpl.h @@ -94,6 +94,9 @@ namespace librados { C_PoolAsync_Safe(PoolAsyncCompletionImpl *_c) : c(_c) { c->get(); } + ~C_PoolAsync_Safe() { + c->put(); + } void finish(int r) { c->lock.Lock(); @@ -109,7 +112,7 @@ namespace librados { c->lock.Lock(); } - c->put_unlock(); + c->Unlock(); } }; } |