Fix crash when a GC client disconnects
The client thread can't just delete its own thread object from connections, it has to detach it.
This commit is contained in:
+4
-1
@@ -536,7 +536,10 @@ void LocalStore::collectGarbage(const GCOptions & options, GCResults & results)
|
||||
auto fdClient_ = fdClient.get();
|
||||
std::thread clientThread([&, fdClient = std::move(fdClient)]() {
|
||||
Finally cleanup([&]() {
|
||||
connections.lock()->erase(fdClient.get());
|
||||
auto conn(connections.lock());
|
||||
auto i = conn->find(fdClient.get());
|
||||
i->second.detach();
|
||||
conn->erase(i);
|
||||
});
|
||||
|
||||
while (true) {
|
||||
|
||||
Reference in New Issue
Block a user