DISPATCH-1964: TCP adaptor connection object should be a pooled type
diff --git a/src/adaptors/tcp_adaptor.c b/src/adaptors/tcp_adaptor.c
index 51d9316..fce2219 100644
--- a/src/adaptors/tcp_adaptor.c
+++ b/src/adaptors/tcp_adaptor.c
@@ -22,6 +22,7 @@
#include <proton/netaddr.h>
#include <proton/proactor.h>
#include <proton/raw_connection.h>
+#include "qpid/dispatch/alloc_pool.h"
#include "qpid/dispatch/ctools.h"
#include "qpid/dispatch/protocol_adaptor.h"
#include "delivery.h"
@@ -79,6 +80,8 @@
};
DEQ_DECLARE(qdr_tcp_connection_t, qdr_tcp_connection_list_t);
+ALLOC_DECLARE(qdr_tcp_connection_t);
+ALLOC_DEFINE(qdr_tcp_connection_t);
typedef struct qdr_tcp_adaptor_t {
qdr_core_t *core;
@@ -241,7 +244,7 @@
}
sys_mutex_free(tc->activation_lock);
//proactor will free the socket
- free(tc);
+ free_qdr_tcp_connection_t(tc);
}
static void handle_disconnected(qdr_tcp_connection_t* conn)
@@ -597,7 +600,7 @@
static qdr_tcp_connection_t *qdr_tcp_connection_ingress(qd_tcp_listener_t* listener)
{
- qdr_tcp_connection_t* tc = NEW(qdr_tcp_connection_t);
+ qdr_tcp_connection_t* tc = new_qdr_tcp_connection_t();
ZERO(tc);
tc->activation_lock = sys_mutex();
tc->ingress = true;
@@ -682,7 +685,7 @@
static qdr_tcp_connection_t *qdr_tcp_connection_egress(qd_bridge_config_t *config, qd_server_t *server, qdr_delivery_t *initial_delivery)
{
- qdr_tcp_connection_t* tc = NEW(qdr_tcp_connection_t);
+ qdr_tcp_connection_t* tc = new_qdr_tcp_connection_t();
ZERO(tc);
tc->activation_lock = sys_mutex();
if (initial_delivery) {