From d17681dcc7e3b78a5ec89e941b2f288223712dfa Mon Sep 17 00:00:00 2001 From: Kaipeng Deng Date: Thu, 15 Oct 2020 11:11:31 +0800 Subject: [PATCH] fix DataLoader single process mode exit SIGABRT error. (#27850) * fix DataLoader single process mode exit SIGABRT error. test=develop --- python/paddle/fluid/dataloader/dataloader_iter.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/python/paddle/fluid/dataloader/dataloader_iter.py b/python/paddle/fluid/dataloader/dataloader_iter.py index 1ef0d494e07..a0ef750da90 100644 --- a/python/paddle/fluid/dataloader/dataloader_iter.py +++ b/python/paddle/fluid/dataloader/dataloader_iter.py @@ -346,6 +346,12 @@ class _DataLoaderIterSingleProcess(_DataLoaderIterBase): def next(self): return self.__next__() + def __del__(self): + # _blocking_queue in keep order mode holds sub-threads + # need to release thread resources on unexpected exit + if self._blocking_queue: + self._blocking_queue.close() + # NOTE(chenweihang): _worker_loop must be top level method to be pickled def _worker_loop(dataset, dataset_kind, indices_queue, out_queue, done_event, -- GitLab