mirror of
https://github.com/ceph/ceph
synced 2025-04-01 00:26:47 +00:00
class: osd loads class
This commit is contained in:
parent
2ecdf8d1c0
commit
5691dddf5f
@ -33,7 +33,7 @@ dumpjournal_LDADD = libosdc.a libcrush.a libcommon.a
|
||||
|
||||
# osd
|
||||
cosd_SOURCES = cosd.cc msg/SimpleMessenger.cc
|
||||
cosd_LDADD = libosd.a libos.a libcrush.a libcommon.a
|
||||
cosd_LDADD = libosd.a libos.a libcrush.a libcommon.a -ldl
|
||||
dupstore_SOURCES = dupstore.cc
|
||||
dupstore_LDADD = libos.a libcommon.a
|
||||
streamtest_SOURCES = streamtest.cc
|
||||
|
@ -5,6 +5,7 @@
|
||||
#include "messages/MClass.h"
|
||||
#include "ClassHandler.h"
|
||||
|
||||
#include <dlfcn.h>
|
||||
|
||||
#include <map>
|
||||
|
||||
@ -66,9 +67,12 @@ bool ClassHandler::load_class(string name)
|
||||
|
||||
close(fd);
|
||||
|
||||
class_data.handle = dlopen(fname, RTLD_LAZY);
|
||||
|
||||
unlink(fname);
|
||||
free(fname);
|
||||
|
||||
return true;
|
||||
return (class_data.handle != NULL);
|
||||
}
|
||||
|
||||
void ClassHandler::handle_response(MClass *m)
|
||||
|
@ -19,11 +19,12 @@ class ClassHandler
|
||||
version_t version;
|
||||
Cond *queue;
|
||||
ClassImpl impl;
|
||||
void *handle;
|
||||
bool init_queue() {
|
||||
queue = new Cond();
|
||||
return (queue != NULL);
|
||||
}
|
||||
ClassData() : status(CLASS_UNKNOWN), version(-1), queue(NULL) {}
|
||||
ClassData() : status(CLASS_UNKNOWN), version(-1), queue(NULL), handle(NULL) {}
|
||||
~ClassData() { delete queue; }
|
||||
};
|
||||
map<string, ClassData> objects;
|
||||
|
Loading…
Reference in New Issue
Block a user