fix 'pva' provider registration during static linking

Move 'pva' provider registration into registry singleton
construction to ensure that it is done.
This commit is contained in:
Michael Davidsaver
2018-01-31 11:43:39 -08:00
parent b05ec689d0
commit abce3faa86
2 changed files with 9 additions and 45 deletions

View File

@@ -9,6 +9,7 @@
#include <osiSock.h>
#include <epicsThread.h>
#include <epicsSignal.h>
#include <pv/lock.h>
#include <pv/noDefaultMethods.h>
@@ -18,6 +19,7 @@
#define epicsExportSharedSymbols
#include <pv/pvAccess.h>
#include <pv/clientContextImpl.h>
#include <pv/factory.h>
#include "pv/codec.h"
#include <pv/serverContextImpl.h>
@@ -161,7 +163,12 @@ epicsThreadOnceId providerRegOnce = EPICS_THREAD_ONCE_INIT;
void providerRegInit(void*)
{
epicsSignalInstallSigAlarmIgnore();
epicsSignalInstallSigPipeIgnore();
providerRegGbl = new providerRegGbl_t;
providerRegGbl->clients->add("pva", createClientProvider);
registerRefCounter("ServerContextImpl", &ServerContextImpl::num_instances);
registerRefCounter("ServerChannel", &ServerChannel::num_instances);
registerRefCounter("BlockingTCPTransportCodec", &detail::BlockingTCPTransportCodec::num_instances);