Commit 8ab309a8 authored by Davis King's avatar Davis King

Changed the verbose parallel_for() methods so that they only

print the final newline if any of the verbose messages printed.
parent 64afd2ec
...@@ -298,13 +298,20 @@ namespace dlib ...@@ -298,13 +298,20 @@ namespace dlib
obj(obj_), funct(funct_), pbar(end-begin) obj(obj_), funct(funct_), pbar(end-begin)
{ {
count = 0; count = 0;
pbar.print_status(0); wrote_to_screen = pbar.print_status(0);
}
~parfor_verbose_helper()
{
if (wrote_to_screen)
std::cout << std::endl;
} }
mutable long count; mutable long count;
T& obj; T& obj;
void (T::*funct)(long); void (T::*funct)(long);
mutable console_progress_indicator pbar; mutable console_progress_indicator pbar;
mutable bool wrote_to_screen;
mutex m; mutex m;
void operator()(long i) const void operator()(long i) const
...@@ -312,7 +319,7 @@ namespace dlib ...@@ -312,7 +319,7 @@ namespace dlib
(obj.*funct)(i); (obj.*funct)(i);
{ {
auto_mutex lock(m); auto_mutex lock(m);
pbar.print_status(++count); wrote_to_screen = wrote_to_screen || pbar.print_status(++count);
} }
} }
...@@ -326,13 +333,20 @@ namespace dlib ...@@ -326,13 +333,20 @@ namespace dlib
obj(obj_), funct(funct_), pbar(end-begin) obj(obj_), funct(funct_), pbar(end-begin)
{ {
count = 0; count = 0;
pbar.print_status(0); wrote_to_screen = pbar.print_status(0);
}
~parfor_verbose_helper3()
{
if (wrote_to_screen)
std::cout << std::endl;
} }
mutable long count; mutable long count;
T& obj; T& obj;
void (T::*funct)(long,long); void (T::*funct)(long,long);
mutable console_progress_indicator pbar; mutable console_progress_indicator pbar;
mutable bool wrote_to_screen;
mutex m; mutex m;
void operator()(long begin, long end) const void operator()(long begin, long end) const
...@@ -341,7 +355,7 @@ namespace dlib ...@@ -341,7 +355,7 @@ namespace dlib
{ {
auto_mutex lock(m); auto_mutex lock(m);
count += end-begin; count += end-begin;
pbar.print_status(count); wrote_to_screen = wrote_to_screen || pbar.print_status(count);
} }
} }
}; };
...@@ -353,12 +367,19 @@ namespace dlib ...@@ -353,12 +367,19 @@ namespace dlib
parfor_verbose_helper2(const T& obj_, long begin, long end) : obj(obj_), pbar(end-begin) parfor_verbose_helper2(const T& obj_, long begin, long end) : obj(obj_), pbar(end-begin)
{ {
count = 0; count = 0;
pbar.print_status(0); wrote_to_screen = pbar.print_status(0);
}
~parfor_verbose_helper2()
{
if (wrote_to_screen)
std::cout << std::endl;
} }
mutable long count; mutable long count;
const T& obj; const T& obj;
mutable console_progress_indicator pbar; mutable console_progress_indicator pbar;
mutable bool wrote_to_screen;
mutex m; mutex m;
void operator()(long i) const void operator()(long i) const
...@@ -366,7 +387,7 @@ namespace dlib ...@@ -366,7 +387,7 @@ namespace dlib
obj(i); obj(i);
{ {
auto_mutex lock(m); auto_mutex lock(m);
pbar.print_status(++count); wrote_to_screen = wrote_to_screen || pbar.print_status(++count);
} }
} }
...@@ -376,7 +397,7 @@ namespace dlib ...@@ -376,7 +397,7 @@ namespace dlib
{ {
auto_mutex lock(m); auto_mutex lock(m);
count += end-begin; count += end-begin;
pbar.print_status(count); wrote_to_screen = wrote_to_screen || pbar.print_status(count);
} }
} }
}; };
...@@ -403,7 +424,6 @@ namespace dlib ...@@ -403,7 +424,6 @@ namespace dlib
impl::parfor_verbose_helper<T> helper(obj, funct, begin, end); impl::parfor_verbose_helper<T> helper(obj, funct, begin, end);
parallel_for(tp, begin, end, helper, chunks_per_thread); parallel_for(tp, begin, end, helper, chunks_per_thread);
std::cout << std::endl;
} }
// ---------------------------------------------------------------------------------------- // ----------------------------------------------------------------------------------------
...@@ -429,7 +449,6 @@ namespace dlib ...@@ -429,7 +449,6 @@ namespace dlib
impl::parfor_verbose_helper<T> helper(obj, funct, begin, end); impl::parfor_verbose_helper<T> helper(obj, funct, begin, end);
parallel_for(num_threads, begin, end, helper, chunks_per_thread); parallel_for(num_threads, begin, end, helper, chunks_per_thread);
std::cout << std::endl;
} }
// ---------------------------------------------------------------------------------------- // ----------------------------------------------------------------------------------------
...@@ -454,7 +473,6 @@ namespace dlib ...@@ -454,7 +473,6 @@ namespace dlib
impl::parfor_verbose_helper2<T> helper(funct, begin, end); impl::parfor_verbose_helper2<T> helper(funct, begin, end);
parallel_for(tp, begin, end, helper, chunks_per_thread); parallel_for(tp, begin, end, helper, chunks_per_thread);
std::cout << std::endl;
} }
// ---------------------------------------------------------------------------------------- // ----------------------------------------------------------------------------------------
...@@ -479,7 +497,6 @@ namespace dlib ...@@ -479,7 +497,6 @@ namespace dlib
impl::parfor_verbose_helper2<T> helper(funct, begin, end); impl::parfor_verbose_helper2<T> helper(funct, begin, end);
parallel_for(num_threads, begin, end, helper, chunks_per_thread); parallel_for(num_threads, begin, end, helper, chunks_per_thread);
std::cout << std::endl;
} }
// ---------------------------------------------------------------------------------------- // ----------------------------------------------------------------------------------------
...@@ -505,7 +522,6 @@ namespace dlib ...@@ -505,7 +522,6 @@ namespace dlib
impl::parfor_verbose_helper3<T> helper(obj, funct, begin, end); impl::parfor_verbose_helper3<T> helper(obj, funct, begin, end);
parallel_for_blocked(tp, begin, end, helper, chunks_per_thread); parallel_for_blocked(tp, begin, end, helper, chunks_per_thread);
std::cout << std::endl;
} }
// ---------------------------------------------------------------------------------------- // ----------------------------------------------------------------------------------------
...@@ -531,7 +547,6 @@ namespace dlib ...@@ -531,7 +547,6 @@ namespace dlib
impl::parfor_verbose_helper3<T> helper(obj, funct, begin, end); impl::parfor_verbose_helper3<T> helper(obj, funct, begin, end);
parallel_for_blocked(num_threads, begin, end, helper, chunks_per_thread); parallel_for_blocked(num_threads, begin, end, helper, chunks_per_thread);
std::cout << std::endl;
} }
// ---------------------------------------------------------------------------------------- // ----------------------------------------------------------------------------------------
...@@ -556,7 +571,6 @@ namespace dlib ...@@ -556,7 +571,6 @@ namespace dlib
impl::parfor_verbose_helper2<T> helper(funct, begin, end); impl::parfor_verbose_helper2<T> helper(funct, begin, end);
parallel_for_blocked(tp, begin, end, helper, chunks_per_thread); parallel_for_blocked(tp, begin, end, helper, chunks_per_thread);
std::cout << std::endl;
} }
// ---------------------------------------------------------------------------------------- // ----------------------------------------------------------------------------------------
...@@ -581,7 +595,6 @@ namespace dlib ...@@ -581,7 +595,6 @@ namespace dlib
impl::parfor_verbose_helper2<T> helper(funct, begin, end); impl::parfor_verbose_helper2<T> helper(funct, begin, end);
parallel_for_blocked(num_threads, begin, end, helper, chunks_per_thread); parallel_for_blocked(num_threads, begin, end, helper, chunks_per_thread);
std::cout << std::endl;
} }
// ---------------------------------------------------------------------------------------- // ----------------------------------------------------------------------------------------
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment