Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r64281 - in sandbox/SOC/2010/process/boost/process: . detail
From: fotanus_at_[hidden]
Date: 2010-07-22 21:36:20


Author: fotanus
Date: 2010-07-22 21:36:16 EDT (Thu, 22 Jul 2010)
New Revision: 64281
URL: http://svn.boost.org/trac/boost/changeset/64281

Log:
Small fixes to compile on linux

Text files modified:
   sandbox/SOC/2010/process/boost/process/detail/basic_status_service.hpp | 7 ++++---
   sandbox/SOC/2010/process/boost/process/detail/posix_helpers.hpp | 13 +++++++++++++
   sandbox/SOC/2010/process/boost/process/detail/status_impl.hpp | 2 +-
   sandbox/SOC/2010/process/boost/process/stream_behavior.hpp | 4 ++--
   4 files changed, 20 insertions(+), 6 deletions(-)

Modified: sandbox/SOC/2010/process/boost/process/detail/basic_status_service.hpp
==============================================================================
--- sandbox/SOC/2010/process/boost/process/detail/basic_status_service.hpp (original)
+++ sandbox/SOC/2010/process/boost/process/detail/basic_status_service.hpp 2010-07-22 21:36:16 EDT (Thu, 22 Jul 2010)
@@ -94,7 +94,7 @@
     void destroy(implementation_type &impl)
     {
         boost::unique_lock<boost::mutex> lock(work_thread_mutex_);
- std::vector<implementation_type>::iterator it = std::find(impls_.begin(), impls_.end(), impl);
+ typename ::std::vector<implementation_type>::iterator it = std::find(impls_.begin(), impls_.end(), impl);
         if (it != impls_.end())
             impls_.erase(it);
         impl.reset();
@@ -143,7 +143,7 @@
         {
 #if defined(BOOST_POSIX_API)
             int status;
- pid_t pid = wait(&status);
+ pid_t pid = ::wait(&status);
             if (pid == -1)
             {
                 if (errno != EINTR)
@@ -157,7 +157,7 @@
             else
             {
                 boost::unique_lock<boost::mutex> lock(work_thread_mutex_);
- for (std::vector<implementation_type>::iterator it = impls_.begin(); it != impls_.end(); ++it)
+ for (typename std::vector<implementation_type>::iterator it = impls_.begin(); it != impls_.end(); ++it)
                     (*it)->complete(pid, status);
                 if (--pids_ == 0)
                     work_.reset();
@@ -198,6 +198,7 @@
 #if defined(BOOST_POSIX_API)
         // By creating a child process which immediately exits we interrupt wait().
         interrupt_pid_ = create_child("/usr/sh").get_id();
+
 #elif defined(BOOST_WINDOWS_API)
         // By signaling the event in the first slot WaitForMultipleObjects() will return.
         // The work thread won't do anything except checking if it should continue to run.

Modified: sandbox/SOC/2010/process/boost/process/detail/posix_helpers.hpp
==============================================================================
--- sandbox/SOC/2010/process/boost/process/detail/posix_helpers.hpp (original)
+++ sandbox/SOC/2010/process/boost/process/detail/posix_helpers.hpp 2010-07-22 21:36:16 EDT (Thu, 22 Jul 2010)
@@ -100,4 +100,17 @@
 }
 }
 
+/*
+ * posix_remap helper function
+ *
+ * Given a native and other handle, it changes the native for the other.
+ * It simply uses dup2 POSIX function and trow an error when needed.
+ *
+ */
+
+void posix_remap(int native_handle, int new_handle)
+{
+ if (::dup2(new_handle, native_handle) == -1)
+ BOOST_PROCESS_THROW_LAST_SYSTEM_ERROR("dup2() failed");
+}
 #endif

Modified: sandbox/SOC/2010/process/boost/process/detail/status_impl.hpp
==============================================================================
--- sandbox/SOC/2010/process/boost/process/detail/status_impl.hpp (original)
+++ sandbox/SOC/2010/process/boost/process/detail/status_impl.hpp 2010-07-22 21:36:16 EDT (Thu, 22 Jul 2010)
@@ -75,7 +75,7 @@
 class status_impl
 {
 public:
- int wait(pid_type pid, boost::system::error_code ec)
+ int wait(pid_type pid, boost::system::system_error ec)
     {
 #if defined(BOOST_POSIX_API)
         pid_t p;

Modified: sandbox/SOC/2010/process/boost/process/stream_behavior.hpp
==============================================================================
--- sandbox/SOC/2010/process/boost/process/stream_behavior.hpp (original)
+++ sandbox/SOC/2010/process/boost/process/stream_behavior.hpp 2010-07-22 21:36:16 EDT (Thu, 22 Jul 2010)
@@ -58,7 +58,7 @@
      *
      * On POSIX systems it is defined as int, on Windows systems as HANDLE.
      */
-#if defined(BOOST_POSIX_API)
+#if defined(BOOST_PROCESS_DOXYGEN)
     typedef NativeStreamType stream_end_type;
 #elif defined(BOOST_POSIX_API)
     typedef int stream_end_type;
@@ -156,7 +156,7 @@
     {
         stream_end_type ends[2];
 #if defined(BOOST_POSIX_API)
- if (pipe(ends) == -1)
+ if (::pipe(ends) == -1)
             BOOST_PROCESS_THROW_LAST_SYSTEM_ERROR("pipe(2) failed");
 #elif defined(BOOST_WINDOWS_API)
         SECURITY_ATTRIBUTES sa;


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk