diff options
author | Chris Young <chris@unsatisfactorysoftware.co.uk> | 2012-06-04 16:15:12 +0000 |
---|---|---|
committer | Chris Young <chris@unsatisfactorysoftware.co.uk> | 2012-06-04 16:15:12 +0000 |
commit | 76b0243a0a8c66257394289f25064ad0c1663cd6 (patch) | |
tree | 58c5f33883aaf074d7dd5c7d44bb0dccadd0a46b | |
parent | 0437f81c55eb1a3d37cfbc1598ee861efe68c70a (diff) | |
download | netsurf-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.c | 20 | ||||
-rw-r--r-- | amiga/options.h | 3 | ||||
-rw-r--r-- | amiga/resources/Themes/AISS/NetSurf.info | bin | 23739 -> 23720 bytes | |||
-rw-r--r-- | amiga/resources/Themes/Default/NetSurf.info | bin | 14779 -> 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 Binary files differindex e3938cb82..b46db4ad4 100644 --- a/amiga/resources/Themes/AISS/NetSurf.info +++ b/amiga/resources/Themes/AISS/NetSurf.info diff --git a/amiga/resources/Themes/Default/NetSurf.info b/amiga/resources/Themes/Default/NetSurf.info Binary files differindex cddc4875d..8d9088223 100644 --- a/amiga/resources/Themes/Default/NetSurf.info +++ b/amiga/resources/Themes/Default/NetSurf.info |