++critical_section_count_;
if (getMode() && !inside) {
if (getThreadPoolSize()) {
- // We simply pause without waiting for all tasks to complete.
- // We could also call wait() and pause(false) so that all tasks are
- // complete and threads are stopped.
+ // Simply pause after waiting for started tasks to complete.
thread_pool_.pause();
}
// Now it is safe to call callbacks which can also create other CSs.
queue_.resume();
}
- /// @brief return the state of the queue
+ /// @brief return the enable state of the queue
///
- /// Returns the state of the queue
+ /// The 'enabled' state corresponds to true value
+ /// The 'disabled' state corresponds to false value
///
- /// @return the state
+ /// @return the enable state of the queue
bool enabled() {
return (queue_.enabled());
}
- /// @brief return the state of the threads
+ /// @brief return the pause state of the queue
///
- /// Returns the state of the threads
+ /// The 'paused' state corresponds to true value
+ /// The 'resumed' state corresponds to false value
///
- /// @return the state
+ /// @return the pause state of the queue
bool paused() {
return (queue_.paused());
}
/// If the queue is 'enabled', this function returns the first element in
/// the queue or blocks the calling thread if there are no work items
/// available.
+ /// If the queue is 'paused', this function blocks the calling thread until
+ /// the queue is 'resumed'.
/// Before a work item is returned statistics are updated.
///
/// @return the first work item from the queue or an empty element.
cv_.notify_all();
}
- /// @brief return the state of the queue
+ /// @brief return the enable state of the queue
///
- /// Returns the state of the queue
+ /// The 'enabled' state corresponds to true value
+ /// The 'disabled' state corresponds to false value
///
- /// @return the state
+ /// @return the enable state of the queue
bool enabled() {
return (enabled_);
}
- /// @brief return the state of the threads
+ /// @brief return the pause state of the queue
///
- /// Returns the state of the threads
+ /// The 'paused' state corresponds to true value
+ /// The 'resumed' state corresponds to false value
///
- /// @return the state
+ /// @return the pause state of the queue
bool paused() {
return (paused_);
}
/// @brief condition variable used to wait for all threads to be paused
std::condition_variable wait_threads_cv_;
- /// @brief the state of the queue
+ /// @brief the enable state of the queue
/// The 'enabled' state corresponds to true value
/// The 'disabled' state corresponds to false value
std::atomic<bool> enabled_;