From 1fb594833b4a62655eda3fb102d9a795c3ed10d5 Mon Sep 17 00:00:00 2001 From: Jeff Hill Date: Wed, 6 Aug 2003 17:41:40 +0000 Subject: [PATCH] added virtual circuit free list --- src/ca/virtualCircuit.h | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/ca/virtualCircuit.h b/src/ca/virtualCircuit.h index 3c2048393..4429ee982 100644 --- a/src/ca/virtualCircuit.h +++ b/src/ca/virtualCircuit.h @@ -38,6 +38,7 @@ #include "tcpRecvWatchdog.h" #include "tcpSendWatchdog.h" #include "hostNameCache.h" +#include "cxxCompilerDependencies.h" // a modified ca header with capacity for large arrays struct caHdrLargeArray { @@ -136,6 +137,11 @@ public: bool bytesArePendingInOS () const; + void * operator new ( size_t size, + tsFreeList < class tcpiiu, 32, epicsMutexNOOP > & ); + epicsPlacementDeleteOperator (( void *, + tsFreeList < class tcpiiu, 32, epicsMutexNOOP > & )); + private: hostNameCache hostNameCacheInstance; tcpRecvThread recvThread; @@ -206,8 +212,24 @@ private: tcpiiu ( const tcpiiu & ); tcpiiu & operator = ( const tcpiiu & ); + void * operator new ( size_t size ); + void operator delete ( void * ); }; +inline void * tcpiiu::operator new ( size_t size, + tsFreeList < class tcpiiu, 32, epicsMutexNOOP > & mgr ) +{ + return mgr.allocate ( size ); +} + +#ifdef CXX_PLACEMENT_DELETE +inline void tcpiiu::operator delete ( void * pCadaver, + tsFreeList < class tcpiiu, 32, epicsMutexNOOP > & mgr ) +{ + mgr.release ( pCadaver ); +} +#endif + inline bool tcpiiu::ca_v41_ok () const { return CA_V41 ( this->minorProtocolVersion );