Merge pull request #46727 from RandomShaper/fix_nfs_crash
Fix crash on cleanup of EditorFileServer
This commit is contained in:
commit
ac249032bf
|
@ -43,7 +43,7 @@ void EditorFileServer::_close_client(ClientData *cd) {
|
||||||
cd->connection->disconnect_from_host();
|
cd->connection->disconnect_from_host();
|
||||||
{
|
{
|
||||||
MutexLock lock(cd->efs->wait_mutex);
|
MutexLock lock(cd->efs->wait_mutex);
|
||||||
cd->efs->to_wait.insert(&cd->thread);
|
cd->efs->to_wait.insert(cd->thread);
|
||||||
}
|
}
|
||||||
while (cd->files.size()) {
|
while (cd->files.size()) {
|
||||||
memdelete(cd->files.front()->get());
|
memdelete(cd->files.front()->get());
|
||||||
|
@ -278,7 +278,8 @@ void EditorFileServer::_thread_start(void *s) {
|
||||||
cd->connection = self->server->take_connection();
|
cd->connection = self->server->take_connection();
|
||||||
cd->efs = self;
|
cd->efs = self;
|
||||||
cd->quit = false;
|
cd->quit = false;
|
||||||
cd->thread.start(_subthread_start, cd);
|
cd->thread = memnew(Thread);
|
||||||
|
cd->thread->start(_subthread_start, cd);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -47,7 +47,7 @@ class EditorFileServer : public Object {
|
||||||
};
|
};
|
||||||
|
|
||||||
struct ClientData {
|
struct ClientData {
|
||||||
Thread thread;
|
Thread *thread;
|
||||||
Ref<StreamPeerTCP> connection;
|
Ref<StreamPeerTCP> connection;
|
||||||
Map<int, FileAccess *> files;
|
Map<int, FileAccess *> files;
|
||||||
EditorFileServer *efs = nullptr;
|
EditorFileServer *efs = nullptr;
|
||||||
|
|
Loading…
Reference in New Issue