git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube...
authorVásáry Dániel <daniel.vasary@userrendszerhaz.hu>
Mon, 12 Feb 2018 15:49:52 +0000 (15:49 +0000)
committerVásáry Dániel <daniel.vasary@userrendszerhaz.hu>
Mon, 12 Feb 2018 15:49:52 +0000 (15:49 +0000)
server/user.jobengine.osgi.server/src/user/jobengine/zk/model/AsyncBaseModel.java

index 4cb6a5fc676b4b40b79046fedf6555ffcec59baf..7b1596eb10999c30cabc0e3f9ccd708b2bb83bc1 100644 (file)
@@ -1,16 +1,15 @@
 package user.jobengine.zk.model;\r
 \r
+import java.util.ArrayList;\r
 import java.util.Arrays;\r
 import java.util.List;\r
-import java.util.concurrent.BlockingQueue;\r
-import java.util.concurrent.LinkedBlockingQueue;\r
 \r
 import org.zkoss.bind.BindUtils;\r
 import org.zkoss.bind.annotation.Command;\r
 \r
 public class AsyncBaseModel extends BaseModel {\r
 \r
-       private BlockingQueue<UITask> uiTasks = new LinkedBlockingQueue<>();\r
+       private List<UITask> uiTasks = new ArrayList<>();\r
 \r
        protected void NotifyChange(String... names) {\r
                List<String> nameList = Arrays.asList(names);\r
@@ -18,18 +17,19 @@ public class AsyncBaseModel extends BaseModel {
        }\r
 \r
        protected void registerTask(UITask task) {\r
-               try {\r
-                       uiTasks.put(task);\r
-               } catch (InterruptedException e) {\r
+               synchronized (uiTasks) {\r
+                       uiTasks.add(task);\r
                }\r
        }\r
 \r
        @Command\r
        public void uiTick() {\r
-               UITask task = uiTasks.poll();\r
-               if (task == null)\r
-                       return;\r
-               task.execute();\r
+               synchronized (uiTasks) {\r
+                       for (UITask task : uiTasks) {\r
+                               task.execute();\r
+                       }\r
+                       uiTasks.clear();\r
+               }\r
        }\r
 \r
 }\r