[gnome-music/wip/mschraal/artrework: 5/6] albumartcache: Higher priority for I/O processes
- From: Marinus Schraal <mschraal src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-music/wip/mschraal/artrework: 5/6] albumartcache: Higher priority for I/O processes
- Date: Wed, 31 Jan 2018 15:16:58 +0000 (UTC)
commit 33c11bfcc8d7a2dd4a38dcf3d40086488bd06e9d
Author: Marinus Schraal <mschraal gnome org>
Date: Wed Jan 31 16:12:36 2018 +0100
albumartcache: Higher priority for I/O processes
Test solution for closing files quicker in the art cache process to stop
running into open file limits.
Related: #121
gnomemusic/albumartcache.py | 18 +++++++++---------
gnomemusic/widgets/coverstack.py | 4 ++--
2 files changed, 11 insertions(+), 11 deletions(-)
---
diff --git a/gnomemusic/albumartcache.py b/gnomemusic/albumartcache.py
index f9d0239..9c98bf7 100644
--- a/gnomemusic/albumartcache.py
+++ b/gnomemusic/albumartcache.py
@@ -413,7 +413,7 @@ class Cache(GObject.GObject):
if (success
and thumb_file.query_exists()):
thumb_file.read_async(
- GLib.PRIORITY_LOW, None, self._open_stream, None)
+ GLib.PRIORITY_HIGH, None, self._open_stream, None)
return
self.emit('miss')
@@ -425,7 +425,7 @@ class Cache(GObject.GObject):
except GLib.Error as error:
logger.warn("Error: {}, {}".format(error.domain, error.message))
stream.close_async(
- GLib.PRIORITY_LOW, None, self._close_stream, None)
+ GLib.PRIORITY_HIGH, None, self._close_stream, None)
self.emit('miss')
return
@@ -439,11 +439,11 @@ class Cache(GObject.GObject):
except GLib.Error as error:
logger.warn("Error: {}, {}".format(error.domain, error.message))
stream.close_async(
- GLib.PRIORITY_LOW, None, self._close_stream, None)
+ GLib.PRIORITY_HIGH, None, self._close_stream, None)
self.emit('miss')
return
- stream.close_async(GLib.PRIORITY_LOW, None, self._close_stream, None)
+ stream.close_async(GLib.PRIORITY_HIGH, None, self._close_stream, None)
self.emit('hit', pixbuf)
@log
@@ -584,7 +584,7 @@ class EmbeddedArt(GObject.GObject):
self._media_art.uri_async(
MediaArt.Type.ALBUM, MediaArt.ProcessFlags.NONE,
self._media.get_url(), self._artist, self._album,
- GLib.PRIORITY_LOW, None, self._uri_async_cb, None)
+ GLib.PRIORITY_HIGH, None, self._uri_async_cb, None)
@log
def _uri_async_cb(self, src, result, data):
@@ -651,7 +651,7 @@ class RemoteArt(GObject.GObject):
tmp_file, iostream = data
iostream.close_async(
- GLib.PRIORITY_LOW, None, self._close_iostream_callback, None)
+ GLib.PRIORITY_HIGH, None, self._close_iostream_callback, None)
try:
src.splice_finish(result)
@@ -678,7 +678,7 @@ class RemoteArt(GObject.GObject):
self.emit('retrieved')
tmp_file.delete_async(
- GLib.PRIORITY_LOW, None, self._delete_callback, None)
+ GLib.PRIORITY_HIGH, None, self._delete_callback, None)
@log
def _close_iostream_callback(self, src, result, data):
@@ -708,7 +708,7 @@ class RemoteArt(GObject.GObject):
# closed. PyGI specific issue?
ostream.splice_async(
istream, Gio.OutputStreamSpliceFlags.CLOSE_SOURCE |
- Gio.OutputStreamSpliceFlags.CLOSE_TARGET, GLib.PRIORITY_LOW,
+ Gio.OutputStreamSpliceFlags.CLOSE_TARGET, GLib.PRIORITY_HIGH,
None, self._splice_callback, [tmp_file, iostream])
@log
@@ -726,4 +726,4 @@ class RemoteArt(GObject.GObject):
src = Gio.File.new_for_uri(thumb_uri)
src.read_async(
- GLib.PRIORITY_LOW, None, self._read_callback, None)
+ GLib.PRIORITY_HIGH, None, self._read_callback, None)
diff --git a/gnomemusic/widgets/coverstack.py b/gnomemusic/widgets/coverstack.py
index fda824f..1c7d22a 100644
--- a/gnomemusic/widgets/coverstack.py
+++ b/gnomemusic/widgets/coverstack.py
@@ -22,7 +22,7 @@
# code, but you are not obligated to do so. If you do not wish to do so,
# delete this exception statement from your version.
-from gi.repository import GObject, Gtk
+from gi.repository import GLib, GObject, Gtk
from gnomemusic import log
from gnomemusic.albumartcache import Art, DefaultIcon
@@ -78,7 +78,7 @@ class CoverStack(GObject.GObject):
art = Art(self._size, media, self._scale)
self._handler_id = art.connect('finished', self._art_retrieved)
- art.lookup()
+ GLib.idle_add(art.lookup)
@log
def _art_retrieved(self, klass):
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]