From 00d163b4bc65059de0242bbdcb8f4c524de55149 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9F=D0=B5=D0=BB=D0=B8=D0=BF=D0=B5=D0=BD=D0=BA=D0=BE=20?= =?UTF-8?q?=D0=98=D0=B2=D0=B0=D0=BD?= Date: Tue, 26 Jul 2016 19:27:12 +0000 Subject: [PATCH] git-svn-id: svn://db.shs.com.ru/pip@213 12ceb7fc-bf1f-11e4-8940-5bc7170c53b5 --- src/io/piconnection.cpp | 14 ++++++++++++++ src/io/piconnection.h | 3 ++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/io/piconnection.cpp b/src/io/piconnection.cpp index 2355987a..4ce54abf 100755 --- a/src/io/piconnection.cpp +++ b/src/io/piconnection.cpp @@ -323,6 +323,7 @@ PIIODevice * PIConnection::addDevice(const PIString & full_path, PIIODevice::Dev d->setInterval(10.); diags_[dev] = d; CONNECTU(d, qualityChanged, this, diagQualityChanged); + __device_pool__->init(); } __device_pool__->unlock(); } @@ -857,6 +858,19 @@ bool PIConnection::isFakeMode() { +PIConnection::DevicePool::DevicePool(): PIThread(false, 10) { + setName("PIConnection::DevicePool"); + needLockRun(true); + fake = false; +} + + +void PIConnection::DevicePool::init() { + if (!isRunning()) + start(10); +} + + PIIODevice * PIConnection::DevicePool::addDevice(PIConnection * parent, const PIString & fp, PIIODevice::DeviceMode mode, bool start) { DeviceData * dd = devices[fp]; int pmode(0); diff --git a/src/io/piconnection.h b/src/io/piconnection.h index 3c87ead0..76f20292 100755 --- a/src/io/piconnection.h +++ b/src/io/piconnection.h @@ -278,8 +278,9 @@ public: PIOBJECT_SUBCLASS(DevicePool, PIThread) friend class PIConnection; public: - DevicePool(): PIThread(true, 10) {setName("PIConnection::DevicePool"); needLockRun(true); fake = false;} + DevicePool(); + void init(); PIIODevice * addDevice(PIConnection * parent, const PIString & fp, PIIODevice::DeviceMode mode = PIIODevice::ReadWrite, bool start = true); bool removeDevice(PIConnection * parent, const PIString & fp); void unboundConnection(PIConnection * parent);