diff --git a/src/ice_transport.cpp b/src/ice_transport.cpp
index a222cfe321c1b809bca75325e1afd72deec4309f..c44be21aa363b21c67bd1dd5cbc89013f88c2b5d 100644
--- a/src/ice_transport.cpp
+++ b/src/ice_transport.cpp
@@ -155,6 +155,8 @@ public:
     int flushTimerHeapAndIoQueue();
     int checkEventQueue(int maxEventToPoll);
 
+    std::condition_variable_any iceCV_ {};
+
     std::string sessionName_ {};
     std::unique_ptr<pj_pool_t, std::function<void(pj_pool_t*)>> pool_ {};
     bool isTcp_ {false};
@@ -168,7 +170,6 @@ public:
     std::string local_ufrag_ {};
     std::string local_pwd_ {};
     pj_sockaddr remoteAddr_ {};
-    std::condition_variable_any iceCV_ {};
     pj_ice_strans_cfg config_ {};
     std::string last_errmsg_ {};
 
@@ -233,7 +234,7 @@ public:
     mutable std::mutex sendDataMutex_ {};
     std::condition_variable waitDataCv_ = {};
     pj_size_t lastSentLen_ {0};
-    std::atomic_bool destroying_ {false};
+    bool destroying_ {false};
     onShutdownCb scb {};
 };
 
@@ -1707,7 +1708,7 @@ IceTransport::send(unsigned compId, const unsigned char* buf, size_t len)
         // bytes length).
         pimpl_->waitDataCv_.wait(dlk, [&] {
             return pimpl_->lastSentLen_ >= static_cast<pj_size_t>(len)
-                   or pimpl_->destroying_.load();
+                   or pimpl_->destroying_;
         });
         pimpl_->lastSentLen_ = 0;
     } else if (status != PJ_SUCCESS && status != PJ_EPENDING) {