summaryrefslogtreecommitdiff
path: root/qutebrowser/misc/sessions.py
diff options
context:
space:
mode:
authorFlorian Bruhin <me@the-compiler.org>2021-03-23 17:59:45 +0100
committerFlorian Bruhin <me@the-compiler.org>2021-03-23 17:59:45 +0100
commit682d522c778172f1bf1d379a2db97e23f0dbf8fc (patch)
tree2b7d9c13b63766743fa45e48647901bdb0a25f04 /qutebrowser/misc/sessions.py
parent0c0cbdab24772c189f5d036faa37a83ec8256212 (diff)
parent903e2afcd0f0e3ccb75d8c4ef413d0d747e0b136 (diff)
downloadqutebrowser-682d522c778172f1bf1d379a2db97e23f0dbf8fc.tar.gz
qutebrowser-682d522c778172f1bf1d379a2db97e23f0dbf8fc.zip
Merge remote-tracking branch 'origin/pr/4545'
Diffstat (limited to 'qutebrowser/misc/sessions.py')
-rw-r--r--qutebrowser/misc/sessions.py8
1 files changed, 6 insertions, 2 deletions
diff --git a/qutebrowser/misc/sessions.py b/qutebrowser/misc/sessions.py
index 820d5b219..11af329e0 100644
--- a/qutebrowser/misc/sessions.py
+++ b/qutebrowser/misc/sessions.py
@@ -37,7 +37,7 @@ from qutebrowser.config import config, configfiles
from qutebrowser.completion.models import miscmodels
from qutebrowser.mainwindow import mainwindow
from qutebrowser.qt import sip
-from qutebrowser.misc import objects
+from qutebrowser.misc import objects, throttle
_JsonType = MutableMapping[str, Any]
@@ -159,6 +159,8 @@ class SessionManager(QObject):
self._base_path = base_path
self._last_window_session = None
self.did_load = False
+ # throttle autosaves to one minute apart
+ self.save_autosave = throttle.Throttle(self._save_autosave, 60 * 1000)
def _get_session_path(self, name, check_exists=False):
"""Get the session path based on a session name or absolute path.
@@ -354,7 +356,7 @@ class SessionManager(QObject):
configfiles.state['general']['session'] = name
return name
- def save_autosave(self):
+ def _save_autosave(self):
"""Save the autosave session."""
try:
self.save('_autosave')
@@ -363,6 +365,8 @@ class SessionManager(QObject):
def delete_autosave(self):
"""Delete the autosave session."""
+ # cancel any in-flight saves
+ self.save_autosave.cancel()
try:
self.delete('_autosave')
except SessionNotFoundError: