Skip to content

Commit

Permalink
[#1599] addressed comments
Browse files Browse the repository at this point in the history
  • Loading branch information
Razvan Becheriu committed Nov 15, 2023
1 parent 94aa1cd commit a2562b8
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 16 deletions.
4 changes: 1 addition & 3 deletions src/lib/util/multi_threading_mgr.cc
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,7 @@ MultiThreadingMgr::enterCriticalSection() {
++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.
Expand Down
32 changes: 19 additions & 13 deletions src/lib/util/thread_pool.h
Original file line number Diff line number Diff line change
Expand Up @@ -156,20 +156,22 @@ struct ThreadPool {
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());
}
Expand Down Expand Up @@ -366,6 +368,8 @@ struct ThreadPool {
/// 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.
Expand Down Expand Up @@ -505,20 +509,22 @@ struct ThreadPool {
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_);
}
Expand All @@ -539,7 +545,7 @@ struct ThreadPool {
/// @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_;
Expand Down

0 comments on commit a2562b8

Please sign in to comment.