replace caLimitArray with EPICS_CA_AUTO_MAX_ARRAY_BYTES

This commit is contained in:
Michael Davidsaver
2017-05-02 19:31:21 -04:00
parent 4f1b244589
commit 9fd8eec2e2
5 changed files with 11 additions and 14 deletions

View File

@@ -35,6 +35,7 @@ EPICS_CA_CONN_TMO=30.0
EPICS_CA_REPEATER_PORT=5065
EPICS_CA_SERVER_PORT=5064
EPICS_CA_MAX_ARRAY_BYTES=16384
EPICS_CA_AUTO_MAX_ARRAY_BYTES=NO
EPICS_CA_BEACON_PERIOD=15.0
EPICS_CA_MAX_SEARCH_PERIOD=300.0
EPICS_CAS_BEACON_PERIOD=

View File

@@ -55,14 +55,6 @@ static const char pVersionCAC[] =
"@(#) " EPICS_VERSION_STRING
", CA Client Library " __DATE__;
// when set, respect EPICS_CA_MAX_ARRAY_BYTES
// when clear, ignore it
extern "C" {
epicsShareExtern int caLimitArray;
int caLimitArray;
epicsExportAddress(int, caLimitArray);
}
// TCP response dispatch table
const cac::pProtoStubTCP cac::tcpJumpTableCAC [] =
{
@@ -227,6 +219,10 @@ cac::cac (
throw std::bad_alloc ();
}
int caLimitArray;
if(envGetBoolConfigParam(&EPICS_CA_AUTO_MAX_ARRAY_BYTES, &caLimitArray))
caLimitArray = 0;
if(caLimitArray) {
freeListInitPvt ( &this->tcpLargeRecvBufFreeList, this->maxRecvBytesTCP, 1 );
if ( ! this->tcpLargeRecvBufFreeList ) {

View File

@@ -22,6 +22,3 @@ variable(callbackParallelThreadsDefault,int)
# Real-time operation
variable(dbThreadRealtimeLock,int)
# RSRV and dbCa (all local ca contexts)
variable(caLimitArray, int)

View File

@@ -34,9 +34,6 @@
#include "taskwd.h"
#include "cantProceed.h"
// defined in cac.cpp
epicsShareExtern int caLimitArray;
#include "epicsExport.h"
#define epicsExportSharedSymbols
@@ -472,6 +469,7 @@ int rsrv_init (void)
long maxBytesAsALong;
long status;
SOCKET *socks;
int caLimitArray;
clientQlock = epicsMutexMustCreate();
@@ -530,6 +528,10 @@ int rsrv_init (void)
rsrvSizeofLargeBufTCP = maxBytes;
}
}
if(envGetBoolConfigParam(&EPICS_CA_AUTO_MAX_ARRAY_BYTES, &caLimitArray))
caLimitArray = 0;
if (caLimitArray)
freeListInitPvt ( &rsrvLargeBufFreeListTCP, rsrvSizeofLargeBufTCP, 1 );
else

View File

@@ -48,6 +48,7 @@ epicsShareExtern const ENV_PARAM EPICS_CA_AUTO_ADDR_LIST;
epicsShareExtern const ENV_PARAM EPICS_CA_REPEATER_PORT;
epicsShareExtern const ENV_PARAM EPICS_CA_SERVER_PORT;
epicsShareExtern const ENV_PARAM EPICS_CA_MAX_ARRAY_BYTES;
epicsShareExtern const ENV_PARAM EPICS_CA_AUTO_MAX_ARRAY_BYTES;
epicsShareExtern const ENV_PARAM EPICS_CA_MAX_SEARCH_PERIOD;
epicsShareExtern const ENV_PARAM EPICS_CA_NAME_SERVERS;
epicsShareExtern const ENV_PARAM EPICS_CAS_INTF_ADDR_LIST;