From 963501ff41849e6bbcaa7a5c12c6e04b37a8a130 Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Sun, 1 Jul 2012 20:43:39 -0500 Subject: Fix crashes in servers Start work on FPGA client --- servers/fpga_server_lin/src/fpga_conn.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'servers/fpga_server_lin/src/fpga_conn.cpp') diff --git a/servers/fpga_server_lin/src/fpga_conn.cpp b/servers/fpga_server_lin/src/fpga_conn.cpp index f0ab39d..6f4cecf 100644 --- a/servers/fpga_server_lin/src/fpga_conn.cpp +++ b/servers/fpga_server_lin/src/fpga_conn.cpp @@ -57,7 +57,7 @@ struct exit_exception { instance of this class. */ FPGASocket::FPGASocket(int sock, TQObject *parent, const char *name) : - TDEKerberosServerSocket(parent, name), m_criticalSection(0), m_config(static_cast(parent)->m_config) { + TDEKerberosServerSocket(parent, name), m_criticalSection(0), m_loopTimer(NULL), m_config(static_cast(parent)->m_config) { setServiceName("remotefpga"); @@ -68,7 +68,11 @@ FPGASocket::FPGASocket(int sock, TQObject *parent, const char *name) : } FPGASocket::~FPGASocket() { - // + if (m_loopTimer) { + m_loopTimer->stop(); + delete m_loopTimer; + m_loopTimer = NULL; + } } void FPGASocket::close() { @@ -177,7 +181,7 @@ void FPGASocket::commandLoop() { } } m_criticalSection--; - TQTimer::singleShot(0, this, SLOT(commandLoop())); + if (m_loopTimer) m_loopTimer->start(0, TRUE); return; } catch (...) { @@ -187,7 +191,11 @@ void FPGASocket::commandLoop() { } int FPGASocket::enterCommandLoop() { - TQTimer::singleShot(0, this, SLOT(commandLoop())); + if (!m_loopTimer) { + m_loopTimer = new TQTimer(); + connect(m_loopTimer, SIGNAL(timeout()), this, SLOT(commandLoop())); + } + if (m_loopTimer) m_loopTimer->start(0, TRUE); return 0; } -- cgit v1.2.3