diff options
author | Elisey Zamakhov <EZamakhov@luxoft.com> | 2015-03-20 15:17:48 +0300 |
---|---|---|
committer | Elisey Zamakhov <EZamakhov@luxoft.com> | 2015-03-24 20:19:35 +0300 |
commit | 1fc5461545dc1787be851fde9fc57560f6414da2 (patch) | |
tree | 06db88b7baad496668e64013bcc3ae67fed73550 /src/components/transport_manager/include/transport_manager/transport_manager_impl.h | |
parent | f9202ede545b043f913685bcc139b1bc5af92bc9 (diff) | |
download | sdl_core-1fc5461545dc1787be851fde9fc57560f6414da2.tar.gz |
Add TMIpl::Handle2GUIDConverter::conversion_table_ synchronization
Diffstat (limited to 'src/components/transport_manager/include/transport_manager/transport_manager_impl.h')
-rw-r--r-- | src/components/transport_manager/include/transport_manager/transport_manager_impl.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/components/transport_manager/include/transport_manager/transport_manager_impl.h b/src/components/transport_manager/include/transport_manager/transport_manager_impl.h index 97498347e2..023cfecd41 100644 --- a/src/components/transport_manager/include/transport_manager/transport_manager_impl.h +++ b/src/components/transport_manager/include/transport_manager/transport_manager_impl.h @@ -288,6 +288,8 @@ class TransportManagerImpl : public TransportManager, } DeviceHandle UidToHandle(const DeviceUID& dev_uid, bool& is_new) { + { + sync_primitives::AutoReadLock lock(conversion_table_lock); ConversionTable::iterator it = std::find( conversion_table_.begin(), conversion_table_.end(), dev_uid); if (it != conversion_table_.end()) { @@ -295,12 +297,15 @@ class TransportManagerImpl : public TransportManager, return std::distance(conversion_table_.begin(), it) + 1; // handle begin since 1 (one) } + } is_new = true; + sync_primitives::AutoWriteLock lock(conversion_table_lock); conversion_table_.push_back(dev_uid); return conversion_table_.size(); // handle begin since 1 (one) } DeviceUID HandleToUid(DeviceHandle handle) { + sync_primitives::AutoReadLock lock(conversion_table_lock); if (handle == 0 || handle > conversion_table_.size()) { return DeviceUID(); } @@ -308,6 +313,7 @@ class TransportManagerImpl : public TransportManager, } ConversionTable conversion_table_; + sync_primitives::RWLock conversion_table_lock; }; /** |