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:
parent
4d014221d4
commit
e0936ae38f
|
@ -536,7 +536,10 @@ void LocalStore::collectGarbage(const GCOptions & options, GCResults & results)
|
||||||
auto fdClient_ = fdClient.get();
|
auto fdClient_ = fdClient.get();
|
||||||
std::thread clientThread([&, fdClient = std::move(fdClient)]() {
|
std::thread clientThread([&, fdClient = std::move(fdClient)]() {
|
||||||
Finally cleanup([&]() {
|
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) {
|
while (true) {
|
||||||
|
|
Loading…
Reference in a new issue