address issue #33

This commit is contained in:
mrkraimer
2018-05-19 10:11:48 -04:00
parent bbb5fa2c64
commit 87ccf78a9b
4 changed files with 9 additions and 84 deletions
+1 -2
View File
@@ -1371,8 +1371,7 @@ Monitor::shared_pointer ChannelLocal::createMonitor(
<< endl;
}
MonitorPtr monitor =
getMonitorFactory()->createMonitor(
MonitorPtr monitor = createMonitorLocal(
pvRecord,
monitorRequester,
pvRequest);
+1 -8
View File
@@ -103,7 +103,6 @@ ChannelFind::shared_pointer ChannelProviderLocal::channelFind(
if(traceLevel>1) {
cout << "ChannelProviderLocal::channelFind " << "channelName" << endl;
}
Lock xx(mutex);
PVRecordPtr pvRecord = pvDatabase->findRecord(channelName);
if(pvRecord) {
channelFindRequester->channelFindResult(
@@ -127,12 +126,7 @@ ChannelFind::shared_pointer ChannelProviderLocal::channelList(
if(traceLevel>1) {
cout << "ChannelProviderLocal::channelList\n";
}
PVStringArrayPtr records;
{
Lock guard(mutex);
records = pvDatabase->getRecordNames();
}
PVStringArrayPtr records(pvDatabase->getRecordNames());
channelListRequester->channelListResult(Status::Ok, shared_from_this(), records->view(), false);
return shared_from_this();
}
@@ -145,7 +139,6 @@ Channel::shared_pointer ChannelProviderLocal::createChannel(
if(traceLevel>1) {
cout << "ChannelProviderLocal::createChannel " << "channelName" << endl;
}
Lock xx(mutex);
PVRecordPtr pvRecord = pvDatabase->findRecord(channelName);
if(pvRecord) {
ChannelLocalPtr channel(new ChannelLocal(
+3 -27
View File
@@ -29,6 +29,8 @@ using std::string;
namespace epics { namespace pvDatabase {
class MonitorLocal;
typedef std::tr1::shared_ptr<MonitorLocal> MonitorLocalPtr;
static MonitorPtr nullMonitor;
static MonitorElementPtr NULLMonitorElement;
@@ -445,22 +447,11 @@ bool MonitorLocal::init(PVStructurePtr const & pvRequest)
return true;
}
MonitorFactory::MonitorFactory()
{
}
MonitorFactory::~MonitorFactory()
{
}
MonitorPtr MonitorFactory::createMonitor(
MonitorPtr createMonitorLocal(
PVRecordPtr const & pvRecord,
MonitorRequester::shared_pointer const & monitorRequester,
PVStructurePtr const & pvRequest)
{
Lock xx(mutex);
MonitorLocalPtr monitor(new MonitorLocal(
monitorRequester,pvRecord));
bool result = monitor->init(pvRequest);
@@ -478,19 +469,4 @@ MonitorPtr MonitorFactory::createMonitor(
return monitor;
}
MonitorFactoryPtr getMonitorFactory()
{
static MonitorFactoryPtr monitorFactoryPtr;
static Mutex mutex;
Lock xx(mutex);
if(!monitorFactoryPtr) {
monitorFactoryPtr = MonitorFactoryPtr(
new MonitorFactory());
}
return monitorFactoryPtr;
}
}}