$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r55691 - in sandbox/boost: . mapreduce
From: cdm.henderson_at_[hidden]
Date: 2009-08-20 16:55:10
Author: chenderson
Date: 2009-08-20 16:55:09 EDT (Thu, 20 Aug 2009)
New Revision: 55691
URL: http://svn.boost.org/trac/boost/changeset/55691
Log:
Improved error handling
Text files modified: 
   sandbox/boost/mapreduce.hpp     |     7 +++++--                                 
   sandbox/boost/mapreduce/job.hpp |    12 +++++++++---                            
   2 files changed, 14 insertions(+), 5 deletions(-)
Modified: sandbox/boost/mapreduce.hpp
==============================================================================
--- sandbox/boost/mapreduce.hpp	(original)
+++ sandbox/boost/mapreduce.hpp	2009-08-20 16:55:09 EDT (Thu, 20 Aug 2009)
@@ -15,7 +15,10 @@
 
 #ifdef BOOST_MSVC
 #   if !defined(__SGI_STL_PORT)
-#   pragma message("warning: using STLPort is recommended to avoid STL container locking in MSVC supplied libraries.")
+#       pragma message("warning: using STLPort is recommended to avoid STL container performance problems in MSVC supplied libraries.")
+#   endif
+#   if _SECURE_SCL
+#       pragma message("warning: using MSVC with _SECURE_SCL=1 defined can cause serious runtime performance degradation.")
 #   endif
 #endif
 
@@ -41,7 +44,7 @@
     specification()
       : map_tasks(0),                   
         reduce_tasks(1),
-        max_file_segment_size(1048576L),    // default 1Gb               
+        max_file_segment_size(1048576L),    // default 1Mb
         output_filespec("mapreduce_")   
     {
     }
Modified: sandbox/boost/mapreduce/job.hpp
==============================================================================
--- sandbox/boost/mapreduce/job.hpp	(original)
+++ sandbox/boost/mapreduce/job.hpp	2009-08-20 16:55:09 EDT (Thu, 20 Aug 2009)
@@ -190,6 +190,8 @@
         bool success = true;
         try
         {
+            ++result.counters.map_keys_executed;
+
             std::auto_ptr<typename map_task_type::key_type>
                 map_key_ptr(
                     reinterpret_cast<
@@ -200,9 +202,10 @@
             // get the data
             typename map_task_type::value_type value;
             if (!datasource_.get_data(map_key, value))
+            {
+                ++result.counters.map_key_errors;
                 return false;
-
-            ++result.counters.map_keys_executed;
+            }
 
             // Map Task
             if (map_key == typename map_task_type::key_type()
@@ -246,6 +249,8 @@
 
     bool const run_reduce_task(unsigned const partition, results &result)
     {
+        bool success = true;
+
         using namespace boost::posix_time;
         ptime start_time(microsec_clock::universal_time());
         try
@@ -262,11 +267,12 @@
         {
             std::cerr << "\nError: " << e.what() << "\n";
             ++result.counters.reduce_key_errors;
+            success = false;
         }
         
         result.reduce_times.push_back(microsec_clock::universal_time()-start_time);
 
-        return true;
+        return success;
     }
 
   private: