On 06/06/2017 05:05 AM, Michael Davidsaver wrote:
On 06/04/2017 09:16 PM, Marty Kraimer wrote:
On 06/04/2017 01:32 PM, Heinz Junkes wrote:
I replaced pvaClientCPP and pvAccessCPP with the code you provide
Now the tests runs without error:
Good news!!!
I did make some more changes to
https://github.com/mrkraimer/pvAccessCPP/
The changes resulted from suggestions made by Michael Davidsaver.
Well, at least some of them.
FYI. this is what I'm doing
https://github.com/mdavidsaver/pvAccessCPP/commit/6926d911eeb1b8ccb4da14ed7717f381379a7434
This is only the first part though, dealing with the problems in
caProvider.cpp.
The larger issue I see is that the "conventional" implementations of
ChannelProviderFactory::sharedInstance() has the factory keep a strong
ChannelProvider reference.
For my work on P4P server side this was causing problems as all python
objects should be destroyed well before the global provider factory
map<> is destroyed. This resulted in an attempt to take the GIL after
it had been free'd. So if a removeProvider() is omitted, then the
process crashes on exit.
My first change is to turn this strong ref. into a weak ref. This means
that destruction of the registry no longer has side-effects related to
provider destruction.
In clearing up some potential global ctor/dtor ordering issues, the
global registry (a la. getChannelProviderRegistry() ) is no longer
free'd. As it hold only weak refs. there seemed to me no downside other
than a "reachable" leak.
I tried building with
https://github.com/mdavidsaver/pvAccessCPP
But pvaSrv does not build.
I get
make[2]: Entering directory '/home/epicsv4/master/pvaSrv/src/O.linux-x86_64'
/usr/bin/g++ -o softIocPVA
-L/home/epicsv4/master/pvaSrv/lib/linux-x86_64
-L/home/epicsv4/master/pvAccessCPP/lib/linux-x86_64
-L/home/epicsv4/master/pvDataCPP/lib/linux-x86_64
-L/home/install/epics/base-3.15.5/lib/linux-x86_64
-Wl,-rpath,/home/epicsv4/master/pvaSrv/lib/linux-x86_64
-Wl,-rpath,/home/epicsv4/master/pvAccessCPP/lib/linux-x86_64
-Wl,-rpath,/home/epicsv4/master/pvDataCPP/lib/linux-x86_64
-Wl,-rpath,/home/install/epics/base-3.15.5/lib/linux-x86_64 -rdynamic
-m64 softMain.o softIocPVA_registerRecordDeviceDriver.o
-lpvaSrv -lpvAccess -lpvData -ldbRecStd -ldbCore -lca -lCom
softIocPVA_registerRecordDeviceDriver.o: In function
`softIocPVA_registerRecordDeviceDriver':
/home/epicsv4/master/pvaSrv/src/O.linux-x86_64/softIocPVA_registerRecordDeviceDriver.cpp:245:
undefined reference to `pvar_func_registerStartPVAServer'
collect2: error: ld returned 1 exit status
/home/install/epics/base/configure/RULES_BUILD:201: recipe for target
'softIocPVA' failed
make[2]: *** [softIocPVA] Error 1
make[2]: Leaving directory '/home/epicsv4/master/pvaSrv/src/O.linux-x86_64'
/home/install/epics/base/configure/RULES_ARCHS:58: recipe for target
'install.linux-x86_64' failed
make[1]: *** [install.linux-x86_64] Error 2
make[1]: Leaving directory '/home/epicsv4/master/pvaSrv/src'
/home/install/epics/base/configure/RULES_DIRS:84: recipe for target
'src.install' failed
make: *** [src.install] Error 2
mrk>
https://github.com/mdavidsaver/pvAccessCPP/
- References:
- terminate called after throwing an instance of 'epicsMutex::invalidMutex' Heinz Junkes
- Re: terminate called after throwing an instance of 'epicsMutex::invalidMutex' Marty Kraimer
- Re: terminate called after throwing an instance of 'epicsMutex::invalidMutex' Heinz Junkes
- Re: terminate called after throwing an instance of 'epicsMutex::invalidMutex' Marty Kraimer
- Re: terminate called after throwing an instance of 'epicsMutex::invalidMutex' Michael Davidsaver
- Navigate by Date:
- Prev:
Re: terminate called after throwing an instance of 'epicsMutex::invalidMutex' Michael Davidsaver
- Next:
binding trouble if Port is already in use, src/ioc/rsrv/caservertask.c Heinz Junkes
- Index:
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
<2017>
2018
2019
2020
2021
2022
2023
2024
- Navigate by Thread:
- Prev:
Re: terminate called after throwing an instance of 'epicsMutex::invalidMutex' Michael Davidsaver
- Next:
Build problem Mark Rivers
- Index:
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
<2017>
2018
2019
2020
2021
2022
2023
2024
|