Skip to content
This repository has been archived by the owner on Feb 26, 2020. It is now read-only.

Fix writer holding to memory after processing #43

Open
wants to merge 6 commits into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 16 additions & 2 deletions trollflow_sat/satpy_writer.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
import time
from threading import Thread
from satpy.writers import compute_writer_results
from dask import threaded
import gc

from posttroll.message import Message
from posttroll.publisher import Publish
Expand Down Expand Up @@ -157,7 +159,19 @@ def run(self):
self._process(data, **kwargs)
except Exception:
self.logger.exception("Something went wrong when writing.")

finally:
if data is None:
try:
threaded.default_pool.close()
threaded.default_pool = None
except AttributeError:
pass
num = gc.collect()
self.logger.debug("Garbage collection cleaned %s objects", num)
self.logger.debug("Exiting thread, done.")
time.sleep(1)
break
del data
# After all the items have been processed, release the
# lock for the previous worker

Expand Down Expand Up @@ -222,7 +236,7 @@ def _process(self, data, **kwargs):
fmts = utils.get_format_settings(product_config, prod,
scn_metadata["area_id"])

# Read writer specific kwargs
# Read writer specific kwargs
writer_kwargs = utils.read_writer_config(product_config, products[prod], prod, scn_metadata)
kwargs.update(writer_kwargs)

Expand Down