pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/rtuData/TaskPool.java
@@ -26,23 +26,25 @@
    * 多线程环境下运行
    * @return
    */
   public static synchronized TaskSurpport popTask(){
      TaskSurpport t = (tasks.size() > 0)?tasks.get(0):null ;
      if(t != null){
         tasks.remove(0) ;
      }else{
         try {
            t = newTaskTree() ;
         } catch (Exception e) {
            log.error(e.getMessage() == null?"实例化上行数据处理任务对象树失败!" : e.getMessage(), e);
         } finally {
            if(t == null){
               log.error("实例化上行数据处理任务对象失败!" );
   public static TaskSurpport popTask(){
      synchronized(tasks){
         TaskSurpport t = (tasks.size() > 0)?tasks.get(0):null ;
         if(t != null){
            tasks.remove(0) ;
         }else{
            try {
               t = newTaskTree() ;
            } catch (Exception e) {
               log.error(e.getMessage() == null?"实例化上行数据处理任务对象树失败!" : e.getMessage(), e);
            } finally {
               if(t == null){
                  log.error("实例化上行数据处理任务对象失败!" );
               }
            }
         }
         return t ;
      }
      return t ;
   }
   
   /**
@@ -51,18 +53,20 @@
    * 这里需要同步锁,因为上面方法中执行完tasks.get(0)且未执行tasks.remove(0)期间,本方法执行并且执行完,那么后期就会出乱子
    * @param t
    */
   public static synchronized void freeAndCleanTask(TaskSurpport t){
      if(t != null){
         boolean find = false ;
         for(TaskSurpport tin : tasks){
            if(tin == t){
               find = true ;
               break ;
   public static void freeAndCleanTask(TaskSurpport t){
      synchronized(tasks) {
         if (t != null) {
            boolean find = false;
            for (TaskSurpport tin : tasks) {
               if (tin == t) {
                  find = true;
                  break;
               }
            }
         }
         if(!find){
            t.cleanMeAndSubs();
            tasks.add(0, t) ;
            if (!find) {
               t.cleanMeAndSubs();
               tasks.add(0, t);
            }
         }
      }
   }