more changes to doc; src/ioc now uses epicsAtExit

This commit is contained in:
mrkraimer
2015-12-08 15:33:22 -05:00
parent 99c7a1ae24
commit 7c8dc748fe
8 changed files with 197 additions and 1875 deletions

View File

@@ -25,6 +25,7 @@
#include <epicsEvent.h>
#include <epicsThread.h>
#include <iocsh.h>
#include <epicsExit.h>
#include <epicsExport.h>
@@ -89,6 +90,10 @@ PVAServerCTXPtr PVAServerCTX::getPVAServerCTX()
return pvPVAServerCTX;
}
static void pvaServerExitHandler(void* /*pPrivate*/) {
cout << "pvaServerExitHandler\n";
PVAServerCTX::getPVAServerCTX()->stop();
}
static const iocshFuncDef startPVAServerFuncDef = {
"startPVAServer", 0, 0
@@ -96,18 +101,11 @@ static const iocshFuncDef startPVAServerFuncDef = {
extern "C" void startPVAServer(const iocshArgBuf *args)
{
PVAServerCTX::getPVAServerCTX()->start();
}
static const iocshFuncDef stopPVAServerFuncDef = {
"stopPVAServer", 0, 0
};
extern "C" void stopPVAServer(const iocshArgBuf *args)
{
PVAServerCTX::getPVAServerCTX()->stop();
epicsAtExit(pvaServerExitHandler, NULL);
}
static void startPVAServerRegister(void)
static void registerStartPVAServer(void)
{
static int firstTime = 1;
if (firstTime) {
@@ -116,16 +114,6 @@ static void startPVAServerRegister(void)
}
}
static void stopPVAServerRegister(void)
{
static int firstTime = 1;
if (firstTime) {
firstTime = 0;
iocshRegister(&stopPVAServerFuncDef, stopPVAServer);
}
}
extern "C" {
epicsExportRegistrar(startPVAServerRegister);
epicsExportRegistrar(stopPVAServerRegister);
epicsExportRegistrar(registerStartPVAServer);
}