[rhythmbox] artsearch: fix fd leak by closing enumerators explicitly



commit 72906495ec4728fd10582f00213755e509d131bc
Author: Jonathan Matthew <jonathan d14n org>
Date:   Wed Oct 3 21:12:00 2012 +1000

    artsearch: fix fd leak by closing enumerators explicitly

 plugins/artsearch/local.py |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)
---
diff --git a/plugins/artsearch/local.py b/plugins/artsearch/local.py
index ce1e798..dfbf6b6 100644
--- a/plugins/artsearch/local.py
+++ b/plugins/artsearch/local.py
@@ -92,11 +92,19 @@ class LocalSearch:
 
 		self.callback(self.callback_args)
 
+	def _close_enum_cb(self, fileenum, result, results):
+		try:
+			fileenum.close_finish(result)
+		except Exception, e:
+			print "couldn't close file enumerator: %s" % e
+		
+
 	def _enum_dir_cb(self, fileenum, result, results):
 		try:
 			files = fileenum.next_files_finish(result)
 			if files is None or len(files) == 0:
 				print "okay, done; got %d files" % len(results)
+				fileenum.close_async(GLib.PRIORITY_DEFAULT, None, self._close_enum_cb, None)
 				self.finished(results)
 				return
 
@@ -115,6 +123,7 @@ class LocalSearch:
 			import sys
 			sys.excepthook(*sys.exc_info())
 			self.finished(results)
+			fileenum.close_async(GLib.PRIORITY_DEFAULT, None, self._close_enum_cb, None)
 
 
 	def _enum_children_cb(self, parent, result, data):



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]