mirror of
https://github.com/gryf/pentadactyl-pm.git
synced 2025-12-23 16:12:26 +01:00
Load Bookmarks/History in a background thread
This commit is contained in:
@@ -217,7 +217,7 @@ function Bookmarks() //{{{
|
|||||||
{
|
{
|
||||||
// Forces a load, if not already loaded but wait 10sec
|
// Forces a load, if not already loaded but wait 10sec
|
||||||
// so most tabs should be restored and the CPU should be idle again usually
|
// so most tabs should be restored and the CPU should be idle again usually
|
||||||
setTimeout(function() { cache.bookmarks; }, 10000);
|
setTimeout(function() { liberator.callFunctionInThread(null, function () cache.load()); }, 10000);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -587,7 +587,7 @@ function History() //{{{
|
|||||||
{
|
{
|
||||||
// Forces a load, if not already loaded but wait 15sec
|
// Forces a load, if not already loaded but wait 15sec
|
||||||
// so that we don't load it at the same time as bookmarks
|
// so that we don't load it at the same time as bookmarks
|
||||||
setTimeout(function() { load(); }, 15000);
|
setTimeout(function() { liberator.callFunctionInThread(null, load); }, 15000);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -1335,7 +1335,7 @@ function Buffer() //{{{
|
|||||||
|
|
||||||
var prog = args.shift();
|
var prog = args.shift();
|
||||||
args.push(url);
|
args.push(url);
|
||||||
liberator.callFunctionInThread(null, io.run, [prog, args, true]);
|
liberator.callFunctionInThread(null, io.run, prog, args, true);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -849,7 +849,7 @@ function Editor() //{{{
|
|||||||
}
|
}
|
||||||
|
|
||||||
// TODO: save return value in v:shell_error
|
// TODO: save return value in v:shell_error
|
||||||
liberator.callFunctionInThread(null, io.run, [prog, args, true]);
|
liberator.callFunctionInThread(null, io.run, prog, args, true);
|
||||||
|
|
||||||
if (textBox)
|
if (textBox)
|
||||||
textBox.removeAttribute("readonly");
|
textBox.removeAttribute("readonly");
|
||||||
|
|||||||
@@ -1255,13 +1255,10 @@ const liberator = (function () //{{{
|
|||||||
},
|
},
|
||||||
|
|
||||||
// be sure to call GUI related methods like alert() or dump() ONLY in the main thread
|
// be sure to call GUI related methods like alert() or dump() ONLY in the main thread
|
||||||
callFunctionInThread: function (thread, func, args)
|
callFunctionInThread: function (thread, func)
|
||||||
{
|
{
|
||||||
function CallbackEvent(func, args)
|
function CallbackEvent(func, args)
|
||||||
{
|
{
|
||||||
if (!(args instanceof Array))
|
|
||||||
args = [];
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
QueryInterface: function (iid)
|
QueryInterface: function (iid)
|
||||||
{
|
{
|
||||||
@@ -1279,10 +1276,10 @@ const liberator = (function () //{{{
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!thread)
|
if (!thread)
|
||||||
thread = Components.classes["@mozilla.org/thread-manager;1"].getService().newThread(0);
|
thread = threadManager.newThread(0);
|
||||||
|
|
||||||
// DISPATCH_SYNC is necessary, otherwise strange things will happen
|
// DISPATCH_SYNC is necessary, otherwise strange things will happen
|
||||||
thread.dispatch(new CallbackEvent(func, args), thread.DISPATCH_SYNC);
|
thread.dispatch(new CallbackEvent(func, Array.slice(arguments, 2)), thread.DISPATCH_SYNC);
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user