augusto2112 added inline comments.
================ Comment at: lldb/include/lldb/Core/Communication.h:86-89 + lldb_private::Connection *GetConnection() { + std::shared_lock guard(m_connection_mutex); + return m_connection_sp.get(); + } ---------------- bulbazord wrote: > This isn't necessarily introduced by your patch, but I don't think this lock > does much other than make sure nobody can change `m_connection_sp` in between > you calling `GetConnection` and you actually receiving the `Connection` > pointer. It still comes with all the pitfalls of handing out a raw pointer > (instead of a `shared_ptr`). > > As a follow-up or maybe even precursor, we should probably stop handing out > the raw connection pointer... I agree. I think we should do it after this patch though. ================ Comment at: lldb/include/lldb/Core/Communication.h:172-174 std::mutex m_write_mutex; ///< Don't let multiple threads write at the same time... + mutable std::shared_mutex m_connection_mutex; ---------------- JDevlieghere wrote: > Why do we need both? Can't we use `m_connection_mutex` in write mode instead > of `m_write_mutex`? If we use `m_connection_mutex` in write mode instead of m_write_mutex then we can't have concurrent reads and writes. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D157760/new/ https://reviews.llvm.org/D157760 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits