summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Young <chris@unsatisfactorysoftware.co.uk>2012-06-04 16:15:12 +0000
committerChris Young <chris@unsatisfactorysoftware.co.uk>2012-06-04 16:15:12 +0000
commit76b0243a0a8c66257394289f25064ad0c1663cd6 (patch)
tree58c5f33883aaf074d7dd5c7d44bb0dccadd0a46b
parent0437f81c55eb1a3d37cfbc1598ee861efe68c70a (diff)
downloadnetsurf-76b0243a0a8c66257394289f25064ad0c1663cd6.tar.gz
netsurf-76b0243a0a8c66257394289f25064ad0c1663cd6.tar.bz2
Run NetSurf at priority 0 by default, dropping to priority -1 when
downloading. svn path=/trunk/netsurf/; revision=13955
-rw-r--r--amiga/download.c20
-rw-r--r--amiga/options.h3
-rw-r--r--amiga/resources/Themes/AISS/NetSurf.infobin23739 -> 23720 bytes
-rw-r--r--amiga/resources/Themes/Default/NetSurf.infobin14779 -> 14760 bytes
4 files changed, 23 insertions, 0 deletions
diff --git a/amiga/download.c b/amiga/download.c
index af8d7e91f..d5071d31f 100644
--- a/amiga/download.c
+++ b/amiga/download.c
@@ -83,6 +83,9 @@ enum {
AMINS_DLOAD_ABORT,
};
+int downloads_in_progress = 0;
+BYTE original_task_priority = 0;
+
struct gui_download_window *gui_download_window_create(download_context *ctx,
struct gui_window *gui)
{
@@ -181,6 +184,16 @@ struct gui_download_window *gui_download_window_create(download_context *ctx,
dw->node = AddObject(window_list,AMINS_DLWINDOW);
dw->node->objstruct = dw;
+
+ /* Set task priority to -1.
+ * NetSurf loops without Wait()ing when downloading,
+ * so this gives other tasks a bit more CPU time. */
+ if(downloads_in_progress == 0) {
+ original_task_priority = SetTaskPri(FindTask(0), (BYTE)nsoption_int(download_task_pri));
+ LOG(("Now running at priority %d (was %d)", nsoption_int(download_task_pri), original_task_priority));
+ }
+ downloads_in_progress++;
+
return dw;
}
@@ -268,6 +281,13 @@ void gui_download_window_done(struct gui_download_window *dw)
SetComment(dw->fname, dw->url);
if(dw->url) free(dw->url);
+ /* Set task priority back to what it was originally */
+ downloads_in_progress--;
+ if(downloads_in_progress == 0) {
+ BYTE taskpri = SetTaskPri(FindTask(0), original_task_priority);
+ LOG(("Now running at priority %d (was %d)", original_task_priority, taskpri));
+ }
+
DisposeObject(dw->objects[OID_MAIN]);
DelObject(dw->node);
if(queuedl) browser_window_download(bw,dln2->node.ln_Name,NULL);
diff --git a/amiga/options.h b/amiga/options.h
index 1f4497bed..287b7ffc4 100644
--- a/amiga/options.h
+++ b/amiga/options.h
@@ -46,6 +46,7 @@
char *arexx_shutdown; \
char *download_dir; \
bool download_notify; \
+ int download_task_pri; \
bool faster_scroll; \
bool scale_quality; \
bool ask_overwrite; \
@@ -105,6 +106,7 @@
.arexx_shutdown = NULL, \
.download_dir = NULL, \
.download_notify = false, \
+ .download_task_pri = -1, \
.faster_scroll = true, \
.scale_quality = false, \
.ask_overwrite = true, \
@@ -163,6 +165,7 @@
{ "arexx_shutdown", OPTION_STRING, &nsoptions.arexx_shutdown }, \
{ "download_dir", OPTION_STRING, &nsoptions.download_dir }, \
{ "download_notify", OPTION_BOOL, &nsoptions.download_notify}, \
+{ "download_task_pri", OPTION_INTEGER, &nsoptions.download_task_pri}, \
{ "faster_scroll", OPTION_BOOL, &nsoptions.faster_scroll}, \
{ "scale_quality", OPTION_BOOL, &nsoptions.scale_quality}, \
{ "ask_overwrite", OPTION_BOOL, &nsoptions.ask_overwrite}, \
diff --git a/amiga/resources/Themes/AISS/NetSurf.info b/amiga/resources/Themes/AISS/NetSurf.info
index e3938cb82..b46db4ad4 100644
--- a/amiga/resources/Themes/AISS/NetSurf.info
+++ b/amiga/resources/Themes/AISS/NetSurf.info
Binary files differ
diff --git a/amiga/resources/Themes/Default/NetSurf.info b/amiga/resources/Themes/Default/NetSurf.info
index cddc4875d..8d9088223 100644
--- a/amiga/resources/Themes/Default/NetSurf.info
+++ b/amiga/resources/Themes/Default/NetSurf.info
Binary files differ