Ignore:
Timestamp:
Jan 30, 2015, 10:34:16 AM (11 years ago)
Author:
Frederik Heber <heber@…>
Children:
419fa2
Parents:
eea0bb (diff), fff8fc (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
git-author:
Frederik Heber <heber@…> (01/29/15 07:42:59)
git-committer:
Frederik Heber <heber@…> (01/30/15 10:34:16)
Message:

Merge branch 'ThreadFixes' into Candidate_v1.4.10

Conflicts:

src/Actions/ActionQueue.cpp
src/Actions/ActionQueue.hpp

  • many conflicts due to last commit in ThreadFixes. Combined stuff from ThreadFixes and preventing failing actions from clearing queue entirely.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Actions/ActionQueue.hpp

    reea0bb r7e6c0d  
    215215  void clearTempQueue();
    216216
    217   /** Sets the run_thread_isIdle flag.
    218    *
    219    * @param _flag state to set to
    220    */
    221   void setRunThreadIdle(const bool _flag);
    222 
    223217  /** Runs the ActionQueue.
    224218   *
     
    255249  void insertAction(Action *_action, enum Action::QueryOptions state);
    256250
     251#ifdef HAVE_ACTION_THREAD
     252  /** Helper to check whether there are more actions in actionqueue for
     253   * run_thread.
     254   *
     255   * \return false - more actions, true - CurrentAction is beyond last action.
     256   */
     257  bool isActionQueueDone() const;
     258
     259  /** Helper to check whether there are more actions in tempqueue for
     260   * run_thread.
     261   *
     262   * \return false - more actions, true - tempqueue is empty
     263   */
     264  bool isTempQueueDone() const;
     265
     266  /** Getter to run_thread_isIdle wrapped in mutex.
     267   *
     268   * \return true - run_thread is idle, false - it is not
     269   */
     270  bool getrun_thread_isIdle() const;
     271
     272  /** Setter for run_thread_isIdle wrapped in mutex.
     273   *
     274   * \param _run_thread_isIdle new idle status for run_thread
     275   */
     276  void setrun_thread_isIdle(
     277      const bool _run_thread_isIdle);
     278#endif
     279
    257280private:
    258281  /** Private cstor for ActionQueue.
     
    291314  ActionQueue_t tempqueue;
    292315
     316  //!> internal mutex to synchronize access to queue
     317  mutable boost::mutex mtx_actionqueue;
     318
     319  //!> internal mutex to synchronize access to queue
     320  mutable boost::mutex mtx_tempqueue;
     321
     322  //!> conditional variable notifying when run_thread is idling
     323  boost::condition_variable cond_idle;
     324
     325  //!> flag indicating whether run_thread is idle or not
     326  bool run_thread_isIdle;
     327
     328  //!> internal mutex to synchronize access to run_thread_isIdle
     329  mutable boost::mutex mtx_run_thread_isIdle;
     330#endif
     331
     332  //!> internal list of status messages from Actions for UIs to display
     333  ActionStatusList StatusList;
     334
     335  // set run_thread to end such that others are initialized first (especially mutexes)
     336#ifdef HAVE_ACTION_THREAD
     337  //!> internal flag to tell whether run_thread is still running
     338  bool run_thread_running;
     339
    293340  //!> internal thread to call Actions
    294341  boost::thread run_thread;
    295 
    296   //!> internal mutex to synchronize access to queue
    297   boost::mutex mtx_queue;
    298 
    299   //!> conditional variable notifying when run_thread is idling
    300   boost::condition_variable cond_idle;
    301 
    302   //!> flag indicating whether run_thread is idle or not
    303   bool run_thread_isIdle;
    304 
    305   //!> internal mutex to synchronize access to run_thread_isIdle
    306   boost::mutex mtx_idle;
    307 #endif
    308 
    309   //!> internal list of status messages from Actions for UIs to display
    310   ActionStatusList StatusList;
     342#endif
    311343};
    312344namespace Queuedetail {
Note: See TracChangeset for help on using the changeset viewer.