Why wait a minute?

On Wednesday 17 December 2008 06:47, j16sdiz at freenetproject.org wrote:
> Author: j16sdiz
> Date: 2008-12-17 06:47:50 +0000 (Wed, 17 Dec 2008)
> New Revision: 24417
> 
> Modified:
>    trunk/plugins/XMLSpider/XMLSpider.java
> Log:
> Show "SCHEDULED" for index writer status
> 
> Modified: trunk/plugins/XMLSpider/XMLSpider.java
> ===================================================================
> --- trunk/plugins/XMLSpider/XMLSpider.java    2008-12-17 06:33:25 UTC (rev 
24416)
> +++ trunk/plugins/XMLSpider/XMLSpider.java    2008-12-17 06:47:50 UTC (rev 
24417)
> @@ -43,7 +43,6 @@
>  import com.db4o.ObjectContainer;
>  import com.db4o.ObjectSet;
>  import com.db4o.config.Configuration;
> -import com.db4o.config.QueryEvaluationMode;
>  import com.db4o.diagnostic.DiagnosticToConsole;
>  import com.db4o.query.Query;
>  
> @@ -377,7 +376,7 @@
>        */
>       public void onSuccess(FetchResult result, ClientGetter state, Page 
> page) {
>               synchronized (this) {
> -                     while (writingIndex && !stopped) {
> +                     while ((writingIndex || writeIndexScheduled) && 
> !stopped) {
>                               try {
>                                       wait();
>                               } catch (InterruptedException e) {
> @@ -1089,13 +1088,11 @@
>  
>               if (request.isPartSet("createIndex")) {
>                       synchronized (this) {
> -                             if (!writingIndex) {
> -                                     scheduleMakeIndex();
> +                             scheduleMakeIndex();
>  
> -                                     HTMLNode infobox = 
> pageMaker.getInfobox("infobox 
infobox-success", "Scheduled Creating Index");
> -                                     infobox.addChild("#", "Index will start 
> create soon.");
> -                                     contentNode.addChild(infobox);
> -                             }
> +                             HTMLNode infobox = 
> pageMaker.getInfobox("infobox 
infobox-success", "Scheduled Creating Index");
> +                             infobox.addChild("#", "Index will start create 
> soon.");
> +                             contentNode.addChild(infobox);
>                       }
>               }
>  
> @@ -1142,6 +1139,8 @@
>               synchronized (this) {
>                       if (writingIndex)
>                               statusContent.addChild("span", "style", "color: 
> red; font-weight: 
bold;", "RUNNING");
> +                     else if (writeIndexScheduled)
> +                             statusContent.addChild("span", "style", "color: 
> blue; font-weight: 
bold;", "SCHEDULED");
>                       else
>                               statusContent.addChild("span", "style", "color: 
> green; font-weight: 
bold;", "IDLE");
>               }
> @@ -1305,6 +1304,7 @@
>  
>       private boolean mustWriteIndex = false;
>       private boolean writingIndex;
> +     private boolean writeIndexScheduled;
>  
>       public void makeIndex() throws Exception {
>               synchronized(this) {
> @@ -1337,12 +1337,16 @@
>               } finally {
>                       synchronized (this) {
>                               writingIndex = false;
> +                             writeIndexScheduled = false;
>                               notifyAll();
>                       }
>               }
>       }
>  
> -     private void scheduleMakeIndex() {
> +     private synchronized void scheduleMakeIndex() {
> +             if (writeIndexScheduled || writingIndex)
> +                     return;
> +             
>               core.getTicker().queueTimedJob(new PrioRunnable() {
>                       public void run() {
>                               try {
> @@ -1355,8 +1359,8 @@
>                       public int getPriority() {
>                               return NativeThread.LOW_PRIORITY;
>                       }
> -
> -             }, 1);
> +             }, 60000); // wait 1 minute for cool down
> +             writeIndexScheduled = true;
>       }
>  
>       public void onFoundEdition(long l, USK key){
> 
> _______________________________________________
> cvs mailing list
> cvs at freenetproject.org
> http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs
> 
> 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 827 bytes
Desc: not available
URL: 
<https://emu.freenetproject.org/pipermail/devl/attachments/20081217/ef227d6f/attachment.pgp>

Reply via email to