From 923bc9a4c8d31df6128dcc4514bb5bf17c1d1e5e Mon Sep 17 00:00:00 2001 From: Greg Farnum Date: Tue, 28 Jul 2009 18:22:00 -0700 Subject: [PATCH] libceph: add a check in ceph_deinitialize to prevent badness on multiple calls. --- src/client/libceph.cc | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/client/libceph.cc b/src/client/libceph.cc index 1144b273ae4a4..5aa8d5190faa8 100644 --- a/src/client/libceph.cc +++ b/src/client/libceph.cc @@ -21,7 +21,8 @@ static MonClient *monclient = NULL; static SimpleMessenger *rank = NULL; extern "C" int ceph_initialize(int argc, const char **argv) -{ ceph_client_mutex.Lock(); +{ + ceph_client_mutex.Lock(); if (!client_initialized) { //create everything to start a client vector args; @@ -57,13 +58,15 @@ extern "C" int ceph_initialize(int argc, const char **argv) extern "C" void ceph_deinitialize() { ceph_client_mutex.Lock(); - client->unmount(); - client->shutdown(); - delete client; - rank->wait(); - delete rank; - delete monclient; - --client_initialized; + if(client_initialized) { + client->unmount(); + client->shutdown(); + delete client; + rank->wait(); + delete rank; + delete monclient; + --client_initialized; + } ceph_client_mutex.Unlock(); } -- 2.39.5