summaryrefslogtreecommitdiffstats
path: root/servers/fpga_server_lin/src/fpga_conn.cpp
diff options
context:
space:
mode:
authorTimothy Pearson <kb9vqf@pearsoncomputing.net>2012-07-01 20:43:39 -0500
committerTimothy Pearson <kb9vqf@pearsoncomputing.net>2012-07-01 20:43:39 -0500
commit963501ff41849e6bbcaa7a5c12c6e04b37a8a130 (patch)
treea92d85facc6b5168890d78e9ad8944fd96d5507a /servers/fpga_server_lin/src/fpga_conn.cpp
parente9dafbb9d016a1aa5e90bb12c63c12b8521cf059 (diff)
downloadulab-963501ff41849e6bbcaa7a5c12c6e04b37a8a130.tar.gz
ulab-963501ff41849e6bbcaa7a5c12c6e04b37a8a130.zip
Fix crashes in servers
Start work on FPGA client
Diffstat (limited to 'servers/fpga_server_lin/src/fpga_conn.cpp')
-rw-r--r--servers/fpga_server_lin/src/fpga_conn.cpp16
1 files changed, 12 insertions, 4 deletions
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<FPGAServer*>(parent)->m_config) {
+ TDEKerberosServerSocket(parent, name), m_criticalSection(0), m_loopTimer(NULL), m_config(static_cast<FPGAServer*>(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;
}