Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r66173 - in branches/release: . boost boost/algorithm/string boost/archive boost/asio boost/asio/detail boost/asio/detail/impl boost/bimap boost/config boost/detail boost/filesystem boost/functional/hash boost/fusion boost/gil boost/graph boost/integer boost/interprocess boost/intrusive boost/io boost/iostreams boost/math boost/msm boost/numeric/ublas boost/program_options boost/property_tree boost/python boost/range boost/regex boost/serialization boost/signals boost/signals2 boost/spirit boost/spirit/home boost/spirit/home/karma boost/spirit/home/support boost/statechart boost/system boost/thread boost/tr1 boost/type_traits boost/typeof boost/unordered boost/utility boost/uuid boost/variant boost/wave doc libs libs/algorithm/string libs/array/doc libs/array/test libs/asio/test libs/bimap libs/config libs/filesystem libs/functional/hash libs/fusion libs/graph_parallel libs/integer libs/interprocess libs/intrusive libs/iostreams libs/math libs/math/doc/sf_and_dist libs/mpi/build libs/mpl/doc/refmanual libs/mpl/doc/src/refmanual libs/msm libs/numeric/ublas libs/numeric/ublas/doc libs/program_options libs/property_tree libs/python libs/range libs/regex libs/serialization libs/serialization/doc libs/serialization/test libs/signals libs/signals2 libs/spirit libs/spirit/classic/example libs/spirit/doc libs/spirit/example libs/spirit/phoenix libs/spirit/test libs/spirit/test/qi libs/statechart libs/static_assert libs/system libs/thread libs/timer libs/tr1 libs/type_traits libs/type_traits/doc libs/typeof/doc libs/unordered libs/utility libs/utility/swap/test libs/uuid libs/wave more more/getting_started status tools tools/bcp tools/boostbook tools/build/v2 tools/inspect tools/quickbook tools/regression tools/regression/src tools/release tools/wave
From: chris_at_[hidden]
Date: 2010-10-25 06:44:38


Author: chris_kohlhoff
Date: 2010-10-25 06:44:35 EDT (Mon, 25 Oct 2010)
New Revision: 66173
URL: http://svn.boost.org/trac/boost/changeset/66173

Log:
Merge from trunk.
........
  r66075 | chris_kohlhoff | 2010-10-18 23:27:12 +1100 (Mon, 18 Oct 2010) | 2 lines
  
  Fix unused parameter warnings.
........
  r66143 | chris_kohlhoff | 2010-10-22 23:07:36 +1100 (Fri, 22 Oct 2010) | 2 lines
  
  Redefine Protocol and id to avoid clashing with Objective-C++ keywords. Fixes #4191.
........
  r66144 | chris_kohlhoff | 2010-10-22 23:20:52 +1100 (Fri, 22 Oct 2010) | 2 lines
  
  Version check not required.
........
  r66156 | chris_kohlhoff | 2010-10-24 11:26:10 +1100 (Sun, 24 Oct 2010) | 2 lines
  
  Fix for IBM C++ compiler.
........
  r66158 | chris_kohlhoff | 2010-10-24 13:06:46 +1100 (Sun, 24 Oct 2010) | 2 lines
  
  Fix vector reallocation performance problem. Fixes #4780.
........
  r66159 | chris_kohlhoff | 2010-10-24 18:58:23 +1100 (Sun, 24 Oct 2010) | 2 lines
  
  Fix kqueue_reactor so that it compiles on NetBSD. Fixes #4662.
........
  r66162 | chris_kohlhoff | 2010-10-25 00:15:46 +1100 (Mon, 25 Oct 2010) | 2 lines
  
  Fix failure in socket_base test on NetBSD.
........

Properties modified:
   branches/release/ (props changed)
   branches/release/INSTALL (props changed)
   branches/release/Jamroot (props changed)
   branches/release/LICENSE_1_0.txt (props changed)
   branches/release/boost/ (props changed)
   branches/release/boost-build.jam (props changed)
   branches/release/boost.css (props changed)
   branches/release/boost.png (props changed)
   branches/release/boost/algorithm/string/ (props changed)
   branches/release/boost/archive/ (props changed)
   branches/release/boost/archive/basic_archive.hpp (props changed)
   branches/release/boost/array.hpp (props changed)
   branches/release/boost/bimap/ (props changed)
   branches/release/boost/config/ (props changed)
   branches/release/boost/config.hpp (props changed)
   branches/release/boost/detail/ (props changed)
   branches/release/boost/detail/endian.hpp (props changed)
   branches/release/boost/filesystem/ (props changed)
   branches/release/boost/filesystem.hpp (props changed)
   branches/release/boost/functional/hash/ (props changed)
   branches/release/boost/fusion/ (props changed)
   branches/release/boost/gil/ (props changed)
   branches/release/boost/graph/ (props changed)
   branches/release/boost/integer/ (props changed)
   branches/release/boost/interprocess/ (props changed)
   branches/release/boost/intrusive/ (props changed)
   branches/release/boost/io/ (props changed)
   branches/release/boost/iostreams/ (props changed)
   branches/release/boost/math/ (props changed)
   branches/release/boost/math_fwd.hpp (props changed)
   branches/release/boost/msm/ (props changed)
   branches/release/boost/numeric/ublas/ (props changed)
   branches/release/boost/numeric/ublas/functional.hpp (props changed)
   branches/release/boost/program_options/ (props changed)
   branches/release/boost/property_tree/ (props changed)
   branches/release/boost/python/ (props changed)
   branches/release/boost/range/ (props changed)
   branches/release/boost/regex/ (props changed)
   branches/release/boost/serialization/ (props changed)
   branches/release/boost/signals/ (props changed)
   branches/release/boost/signals2/ (props changed)
   branches/release/boost/signals2.hpp (props changed)
   branches/release/boost/spirit/ (props changed)
   branches/release/boost/spirit/home/ (props changed)
   branches/release/boost/spirit/home/karma/ (props changed)
   branches/release/boost/spirit/home/support/attributes.hpp (props changed)
   branches/release/boost/statechart/ (props changed)
   branches/release/boost/system/ (props changed)
   branches/release/boost/thread/ (props changed)
   branches/release/boost/thread.hpp (props changed)
   branches/release/boost/tr1/ (props changed)
   branches/release/boost/type_traits/ (props changed)
   branches/release/boost/typeof/message.hpp (props changed)
   branches/release/boost/typeof/register_functions.hpp (props changed)
   branches/release/boost/typeof/register_functions_iterate.hpp (props changed)
   branches/release/boost/typeof/typeof.hpp (props changed)
   branches/release/boost/typeof/unsupported.hpp (props changed)
   branches/release/boost/unordered/ (props changed)
   branches/release/boost/utility/ (props changed)
   branches/release/boost/utility/value_init.hpp (props changed)
   branches/release/boost/uuid/ (props changed)
   branches/release/boost/variant/ (props changed)
   branches/release/boost/version.hpp (props changed)
   branches/release/boost/wave/ (props changed)
   branches/release/bootstrap.bat (props changed)
   branches/release/bootstrap.sh (props changed)
   branches/release/doc/ (props changed)
   branches/release/index.htm (props changed)
   branches/release/index.html (props changed)
   branches/release/libs/ (props changed)
   branches/release/libs/algorithm/string/ (props changed)
   branches/release/libs/array/doc/array.xml (props changed)
   branches/release/libs/array/test/array0.cpp (props changed)
   branches/release/libs/array/test/array2.cpp (props changed)
   branches/release/libs/bimap/ (props changed)
   branches/release/libs/config/ (props changed)
   branches/release/libs/filesystem/ (props changed)
   branches/release/libs/functional/hash/ (props changed)
   branches/release/libs/fusion/ (props changed)
   branches/release/libs/graph_parallel/ (props changed)
   branches/release/libs/integer/ (props changed)
   branches/release/libs/interprocess/ (props changed)
   branches/release/libs/intrusive/ (props changed)
   branches/release/libs/iostreams/ (props changed)
   branches/release/libs/libraries.htm (props changed)
   branches/release/libs/maintainers.txt (props changed)
   branches/release/libs/math/ (props changed)
   branches/release/libs/math/doc/sf_and_dist/ (props changed)
   branches/release/libs/mpi/build/ (props changed)
   branches/release/libs/mpl/doc/refmanual/broken-compiler-workarounds.html (props changed)
   branches/release/libs/mpl/doc/refmanual/categorized-index-concepts.html (props changed)
   branches/release/libs/mpl/doc/refmanual/cfg-no-preprocessed-headers.html (props changed)
   branches/release/libs/mpl/doc/refmanual/composition-and-argument-binding.html (props changed)
   branches/release/libs/mpl/doc/refmanual/data-types-concepts.html (props changed)
   branches/release/libs/mpl/doc/refmanual/data-types-miscellaneous.html (props changed)
   branches/release/libs/mpl/doc/refmanual/extensible-associative-sequence.html (props changed)
   branches/release/libs/mpl/doc/refmanual/inserter-class.html (props changed)
   branches/release/libs/mpl/doc/refmanual/tag-dispatched-metafunction.html (props changed)
   branches/release/libs/mpl/doc/refmanual/trivial-metafunctions-summary.html (props changed)
   branches/release/libs/mpl/doc/src/refmanual/Iterators-Iterator.rst (props changed)
   branches/release/libs/msm/ (props changed)
   branches/release/libs/numeric/ublas/ (props changed)
   branches/release/libs/numeric/ublas/doc/ (props changed)
   branches/release/libs/program_options/ (props changed)
   branches/release/libs/property_tree/ (props changed)
   branches/release/libs/python/ (props changed)
   branches/release/libs/range/ (props changed)
   branches/release/libs/regex/ (props changed)
   branches/release/libs/serialization/ (props changed)
   branches/release/libs/serialization/doc/ (props changed)
   branches/release/libs/serialization/test/ (props changed)
   branches/release/libs/serialization/test/A.cpp (props changed)
   branches/release/libs/serialization/test/A.hpp (props changed)
   branches/release/libs/serialization/test/A.ipp (props changed)
   branches/release/libs/serialization/test/B.hpp (props changed)
   branches/release/libs/serialization/test/C.hpp (props changed)
   branches/release/libs/serialization/test/D.hpp (props changed)
   branches/release/libs/serialization/test/J.hpp (props changed)
   branches/release/libs/serialization/test/Jamfile.v2 (props changed)
   branches/release/libs/serialization/test/base.hpp (props changed)
   branches/release/libs/serialization/test/binary_archive.hpp (props changed)
   branches/release/libs/serialization/test/binary_warchive.hpp (props changed)
   branches/release/libs/serialization/test/derived2.hpp (props changed)
   branches/release/libs/serialization/test/dll_a.cpp (props changed)
   branches/release/libs/serialization/test/dll_base.cpp (props changed)
   branches/release/libs/serialization/test/dll_derived2.cpp (props changed)
   branches/release/libs/serialization/test/polymorphic_array_binary_archive.hpp (props changed)
   branches/release/libs/serialization/test/polymorphic_base.cpp (props changed)
   branches/release/libs/serialization/test/polymorphic_base.hpp (props changed)
   branches/release/libs/serialization/test/polymorphic_binary_archive.hpp (props changed)
   branches/release/libs/serialization/test/polymorphic_derived1.cpp (props changed)
   branches/release/libs/serialization/test/polymorphic_derived1.hpp (props changed)
   branches/release/libs/serialization/test/polymorphic_derived2.cpp (props changed)
   branches/release/libs/serialization/test/polymorphic_derived2.hpp (props changed)
   branches/release/libs/serialization/test/polymorphic_text_archive.hpp (props changed)
   branches/release/libs/serialization/test/polymorphic_text_warchive.hpp (props changed)
   branches/release/libs/serialization/test/polymorphic_xml_archive.hpp (props changed)
   branches/release/libs/serialization/test/polymorphic_xml_warchive.hpp (props changed)
   branches/release/libs/serialization/test/portable_binary_archive.hpp (props changed)
   branches/release/libs/serialization/test/test_array.cpp (props changed)
   branches/release/libs/serialization/test/test_binary.cpp (props changed)
   branches/release/libs/serialization/test/test_bitset.cpp (props changed)
   branches/release/libs/serialization/test/test_check.cpp (props changed)
   branches/release/libs/serialization/test/test_class_info_load.cpp (props changed)
   branches/release/libs/serialization/test/test_class_info_save.cpp (props changed)
   branches/release/libs/serialization/test/test_codecvt_null.cpp (props changed)
   branches/release/libs/serialization/test/test_complex.cpp (props changed)
   branches/release/libs/serialization/test/test_const_load_fail1.cpp (props changed)
   branches/release/libs/serialization/test/test_const_load_fail1_nvp.cpp (props changed)
   branches/release/libs/serialization/test/test_const_load_fail2.cpp (props changed)
   branches/release/libs/serialization/test/test_const_load_fail2_nvp.cpp (props changed)
   branches/release/libs/serialization/test/test_const_load_fail3.cpp (props changed)
   branches/release/libs/serialization/test/test_const_load_fail3_nvp.cpp (props changed)
   branches/release/libs/serialization/test/test_const_pass.cpp (props changed)
   branches/release/libs/serialization/test/test_const_save_warn1.cpp (props changed)
   branches/release/libs/serialization/test/test_const_save_warn1_nvp.cpp (props changed)
   branches/release/libs/serialization/test/test_const_save_warn2.cpp (props changed)
   branches/release/libs/serialization/test/test_const_save_warn2_nvp.cpp (props changed)
   branches/release/libs/serialization/test/test_const_save_warn3.cpp (props changed)
   branches/release/libs/serialization/test/test_const_save_warn3_nvp.cpp (props changed)
   branches/release/libs/serialization/test/test_const_save_warn4.cpp (props changed)
   branches/release/libs/serialization/test/test_const_save_warn4_nvp.cpp (props changed)
   branches/release/libs/serialization/test/test_contained_class.cpp (props changed)
   branches/release/libs/serialization/test/test_cyclic_ptrs.cpp (props changed)
   branches/release/libs/serialization/test/test_decl.hpp (props changed)
   branches/release/libs/serialization/test/test_delete_pointer.cpp (props changed)
   branches/release/libs/serialization/test/test_deque.cpp (props changed)
   branches/release/libs/serialization/test/test_derived.cpp (props changed)
   branches/release/libs/serialization/test/test_derived_class.cpp (props changed)
   branches/release/libs/serialization/test/test_derived_class_ptr.cpp (props changed)
   branches/release/libs/serialization/test/test_diamond.cpp (props changed)
   branches/release/libs/serialization/test/test_diamond_complex.cpp (props changed)
   branches/release/libs/serialization/test/test_dll_exported.cpp (props changed)
   branches/release/libs/serialization/test/test_dll_plugin.cpp (props changed)
   branches/release/libs/serialization/test/test_dll_simple.cpp (props changed)
   branches/release/libs/serialization/test/test_exported.cpp (props changed)
   branches/release/libs/serialization/test/test_inclusion.cpp (props changed)
   branches/release/libs/serialization/test/test_iterators.cpp (props changed)
   branches/release/libs/serialization/test/test_iterators_base64.cpp (props changed)
   branches/release/libs/serialization/test/test_list.cpp (props changed)
   branches/release/libs/serialization/test/test_list_ptrs.cpp (props changed)
   branches/release/libs/serialization/test/test_map.cpp (props changed)
   branches/release/libs/serialization/test/test_mi.cpp (props changed)
   branches/release/libs/serialization/test/test_mult_archive_types.cpp (props changed)
   branches/release/libs/serialization/test/test_multiple_inheritance.cpp (props changed)
   branches/release/libs/serialization/test/test_multiple_ptrs.cpp (props changed)
   branches/release/libs/serialization/test/test_new_operator.cpp (props changed)
   branches/release/libs/serialization/test/test_no_rtti.cpp (props changed)
   branches/release/libs/serialization/test/test_non_default_ctor.cpp (props changed)
   branches/release/libs/serialization/test/test_non_default_ctor2.cpp (props changed)
   branches/release/libs/serialization/test/test_non_intrusive.cpp (props changed)
   branches/release/libs/serialization/test/test_not_serializable.cpp (props changed)
   branches/release/libs/serialization/test/test_null_ptr.cpp (props changed)
   branches/release/libs/serialization/test/test_nvp.cpp (props changed)
   branches/release/libs/serialization/test/test_object.cpp (props changed)
   branches/release/libs/serialization/test/test_optional.cpp (props changed)
   branches/release/libs/serialization/test/test_pimpl.cpp (props changed)
   branches/release/libs/serialization/test/test_polymorphic.cpp (props changed)
   branches/release/libs/serialization/test/test_polymorphic2.cpp (props changed)
   branches/release/libs/serialization/test/test_polymorphic2.hpp (props changed)
   branches/release/libs/serialization/test/test_polymorphic2imp.cpp (props changed)
   branches/release/libs/serialization/test/test_polymorphic_A.cpp (props changed)
   branches/release/libs/serialization/test/test_polymorphic_A.hpp (props changed)
   branches/release/libs/serialization/test/test_primitive.cpp (props changed)
   branches/release/libs/serialization/test/test_private_base.cpp (props changed)
   branches/release/libs/serialization/test/test_private_ctor.cpp (props changed)
   branches/release/libs/serialization/test/test_recursion.cpp (props changed)
   branches/release/libs/serialization/test/test_registered.cpp (props changed)
   branches/release/libs/serialization/test/test_reset_object_address.cpp (props changed)
   branches/release/libs/serialization/test/test_set.cpp (props changed)
   branches/release/libs/serialization/test/test_shared_ptr.cpp (props changed)
   branches/release/libs/serialization/test/test_shared_ptr_132.cpp (props changed)
   branches/release/libs/serialization/test/test_shared_ptr_multi_base.cpp (props changed)
   branches/release/libs/serialization/test/test_simple_class.cpp (props changed)
   branches/release/libs/serialization/test/test_simple_class_ptr.cpp (props changed)
   branches/release/libs/serialization/test/test_singleton.cpp (props changed)
   branches/release/libs/serialization/test/test_smart_cast.cpp (props changed)
   branches/release/libs/serialization/test/test_split.cpp (props changed)
   branches/release/libs/serialization/test/test_static_warning.cpp (props changed)
   branches/release/libs/serialization/test/test_tools.hpp (props changed)
   branches/release/libs/serialization/test/test_tracking.cpp (props changed)
   branches/release/libs/serialization/test/test_traits_fail.cpp (props changed)
   branches/release/libs/serialization/test/test_traits_pass.cpp (props changed)
   branches/release/libs/serialization/test/test_unregistered.cpp (props changed)
   branches/release/libs/serialization/test/test_utf8_codecvt.cpp (props changed)
   branches/release/libs/serialization/test/test_valarray.cpp (props changed)
   branches/release/libs/serialization/test/test_variant.cpp (props changed)
   branches/release/libs/serialization/test/test_vector.cpp (props changed)
   branches/release/libs/serialization/test/test_void_cast.cpp (props changed)
   branches/release/libs/serialization/test/text_archive.hpp (props changed)
   branches/release/libs/serialization/test/text_warchive.hpp (props changed)
   branches/release/libs/serialization/test/xml_archive.hpp (props changed)
   branches/release/libs/serialization/test/xml_warchive.hpp (props changed)
   branches/release/libs/signals/ (props changed)
   branches/release/libs/signals2/ (props changed)
   branches/release/libs/spirit/ (props changed)
   branches/release/libs/spirit/classic/example/ (props changed)
   branches/release/libs/spirit/doc/ (props changed)
   branches/release/libs/spirit/example/ (props changed)
   branches/release/libs/spirit/phoenix/ (props changed)
   branches/release/libs/spirit/test/ (props changed)
   branches/release/libs/spirit/test/qi/optional.cpp (props changed)
   branches/release/libs/statechart/ (props changed)
   branches/release/libs/static_assert/ (props changed)
   branches/release/libs/system/ (props changed)
   branches/release/libs/thread/ (props changed)
   branches/release/libs/timer/ (props changed)
   branches/release/libs/tr1/ (props changed)
   branches/release/libs/type_traits/ (props changed)
   branches/release/libs/type_traits/doc/ (props changed)
   branches/release/libs/typeof/doc/typeof.qbk (props changed)
   branches/release/libs/unordered/ (props changed)
   branches/release/libs/utility/ (props changed)
   branches/release/libs/utility/swap.html (props changed)
   branches/release/libs/utility/swap/test/std_bitset.cpp (props changed)
   branches/release/libs/utility/value_init.htm (props changed)
   branches/release/libs/utility/value_init_test.cpp (props changed)
   branches/release/libs/uuid/ (props changed)
   branches/release/libs/wave/ (props changed)
   branches/release/more/ (props changed)
   branches/release/more/getting_started/ (props changed)
   branches/release/rst.css (props changed)
   branches/release/status/ (props changed)
   branches/release/status/Jamfile.v2 (props changed)
   branches/release/status/explicit-failures-markup.xml (props changed)
   branches/release/tools/ (props changed)
   branches/release/tools/bcp/ (props changed)
   branches/release/tools/boostbook/ (props changed)
   branches/release/tools/build/v2/ (props changed)
   branches/release/tools/inspect/ (props changed)
   branches/release/tools/quickbook/ (props changed)
   branches/release/tools/regression/ (props changed)
   branches/release/tools/regression/src/library_status.cpp (props changed)
   branches/release/tools/release/ (props changed)
   branches/release/tools/wave/ (props changed)
Text files modified:
   branches/release/boost/asio/detail/config.hpp | 1 -
   branches/release/boost/asio/detail/impl/kqueue_reactor.ipp | 35 +++++++++++++++++++++++++----------
   branches/release/boost/asio/detail/impl/socket_ops.ipp | 12 ++++++++----
   branches/release/boost/asio/detail/pop_options.hpp | 5 +++++
   branches/release/boost/asio/detail/push_options.hpp | 7 +++++++
   branches/release/boost/asio/detail/socket_ops.hpp | 2 +-
   branches/release/boost/asio/detail/timer_queue.hpp | 31 ++++++++++++++++---------------
   branches/release/boost/asio/error.hpp | 4 ----
   branches/release/libs/asio/test/deadline_timer.cpp | 7 ++++++-
   9 files changed, 68 insertions(+), 36 deletions(-)

Modified: branches/release/boost/asio/detail/config.hpp
==============================================================================
--- branches/release/boost/asio/detail/config.hpp (original)
+++ branches/release/boost/asio/detail/config.hpp 2010-10-25 06:44:35 EDT (Mon, 25 Oct 2010)
@@ -12,7 +12,6 @@
 #define BOOST_ASIO_DETAIL_CONFIG_HPP
 
 #include <boost/config.hpp>
-#include <boost/version.hpp>
 
 // Default to a header-only implementation. The user must specifically request
 // separate compilation by defining either BOOST_ASIO_SEPARATE_COMPILATION or

Modified: branches/release/boost/asio/detail/impl/kqueue_reactor.ipp
==============================================================================
--- branches/release/boost/asio/detail/impl/kqueue_reactor.ipp (original)
+++ branches/release/boost/asio/detail/impl/kqueue_reactor.ipp 2010-10-25 06:44:35 EDT (Mon, 25 Oct 2010)
@@ -26,6 +26,15 @@
 
 #include <boost/asio/detail/push_options.hpp>
 
+#if defined(__NetBSD__)
+# define BOOST_ASIO_KQUEUE_EV_SET(ev, ident, filt, flags, fflags, data, udata) \
+ EV_SET(ev, ident, filt, flags, fflags, \
+ data, reinterpret_cast<intptr_t>(udata))
+#else
+# define BOOST_ASIO_KQUEUE_EV_SET(ev, ident, filt, flags, fflags, data, udata) \
+ EV_SET(ev, ident, filt, flags, fflags, data, udata)
+#endif
+
 namespace boost {
 namespace asio {
 namespace detail {
@@ -73,7 +82,7 @@
   io_service_.init_task();
 }
 
-int kqueue_reactor::register_descriptor(socket_type descriptor,
+int kqueue_reactor::register_descriptor(socket_type,
     kqueue_reactor::per_descriptor_data& descriptor_data)
 {
   mutex::scoped_lock lock(registered_descriptors_mutex_);
@@ -129,17 +138,17 @@
     switch (op_type)
     {
     case read_op:
- EV_SET(&event, descriptor, EVFILT_READ,
+ BOOST_ASIO_KQUEUE_EV_SET(&event, descriptor, EVFILT_READ,
           EV_ADD | EV_ONESHOT, 0, 0, descriptor_data);
       break;
     case write_op:
- EV_SET(&event, descriptor, EVFILT_WRITE,
+ BOOST_ASIO_KQUEUE_EV_SET(&event, descriptor, EVFILT_WRITE,
           EV_ADD | EV_ONESHOT, 0, 0, descriptor_data);
       break;
     case except_op:
       if (!descriptor_data->op_queue_[read_op].empty())
         return; // Already registered for read events.
- EV_SET(&event, descriptor, EVFILT_READ,
+ BOOST_ASIO_KQUEUE_EV_SET(&event, descriptor, EVFILT_READ,
           EV_ADD | EV_ONESHOT, EV_OOBAND, 0, descriptor_data);
       break;
     }
@@ -178,7 +187,7 @@
   io_service_.post_deferred_completions(ops);
 }
 
-void kqueue_reactor::close_descriptor(socket_type descriptor,
+void kqueue_reactor::close_descriptor(socket_type,
     kqueue_reactor::per_descriptor_data& descriptor_data)
 {
   if (!descriptor_data)
@@ -234,7 +243,7 @@
   for (int i = 0; i < num_events; ++i)
   {
     int descriptor = events[i].ident;
- void* ptr = events[i].udata;
+ void* ptr = reinterpret_cast<void*>(events[i].udata);
     if (ptr == &interrupter_)
     {
       // No need to reset the interrupter since we're leaving the descriptor
@@ -247,7 +256,11 @@
 
       // Exception operations must be processed first to ensure that any
       // out-of-band data is read before normal data.
+#if defined(__NetBSD__)
+ static const unsigned int filter[max_ops] =
+#else
       static const int filter[max_ops] =
+#endif
         { EVFILT_READ, EVFILT_WRITE, EVFILT_READ };
       for (int j = max_ops - 1; j >= 0; --j)
       {
@@ -282,16 +295,16 @@
       {
       case EVFILT_READ:
         if (!descriptor_data->op_queue_[read_op].empty())
- EV_SET(&event, descriptor, EVFILT_READ,
+ BOOST_ASIO_KQUEUE_EV_SET(&event, descriptor, EVFILT_READ,
               EV_ADD | EV_ONESHOT, 0, 0, descriptor_data);
         else if (!descriptor_data->op_queue_[except_op].empty())
- EV_SET(&event, descriptor, EVFILT_READ,
+ BOOST_ASIO_KQUEUE_EV_SET(&event, descriptor, EVFILT_READ,
               EV_ADD | EV_ONESHOT, EV_OOBAND, 0, descriptor_data);
         else
           continue;
       case EVFILT_WRITE:
         if (!descriptor_data->op_queue_[write_op].empty())
- EV_SET(&event, descriptor, EVFILT_WRITE,
+ BOOST_ASIO_KQUEUE_EV_SET(&event, descriptor, EVFILT_WRITE,
               EV_ADD | EV_ONESHOT, 0, 0, descriptor_data);
         else
           continue;
@@ -322,7 +335,7 @@
 void kqueue_reactor::interrupt()
 {
   struct kevent event;
- EV_SET(&event, interrupter_.read_descriptor(),
+ BOOST_ASIO_KQUEUE_EV_SET(&event, interrupter_.read_descriptor(),
       EVFILT_READ, EV_ADD | EV_ONESHOT, 0, 0, &interrupter_);
   ::kevent(kqueue_fd_, &event, 1, 0, 0, 0);
 }
@@ -365,6 +378,8 @@
 } // namespace asio
 } // namespace boost
 
+#undef BOOST_ASIO_KQUEUE_EV_SET
+
 #include <boost/asio/detail/pop_options.hpp>
 
 #endif // defined(BOOST_ASIO_HAS_KQUEUE)

Modified: branches/release/boost/asio/detail/impl/socket_ops.ipp
==============================================================================
--- branches/release/boost/asio/detail/impl/socket_ops.ipp (original)
+++ branches/release/boost/asio/detail/impl/socket_ops.ipp 2010-10-25 06:44:35 EDT (Mon, 25 Oct 2010)
@@ -1414,7 +1414,7 @@
   return result;
 }
 
-int ioctl(socket_type s, state_type& state, long cmd,
+int ioctl(socket_type s, state_type& state, int cmd,
     ioctl_arg_type* arg, boost::system::error_code& ec)
 {
   if (s == invalid_socket)
@@ -1426,9 +1426,13 @@
   clear_last_error();
 #if defined(BOOST_WINDOWS) || defined(__CYGWIN__)
   int result = error_wrapper(::ioctlsocket(s, cmd, arg), ec);
-#else // defined(BOOST_WINDOWS) || defined(__CYGWIN__)
+#elif defined(__MACH__) && defined(__APPLE__) \
+ || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__)
+ int result = error_wrapper(::ioctl(s,
+ static_cast<unsigned int>(cmd), arg), ec);
+#else
   int result = error_wrapper(::ioctl(s, cmd, arg), ec);
-#endif // defined(BOOST_WINDOWS) || defined(__CYGWIN__)
+#endif
   if (result >= 0)
   {
     ec = boost::system::error_code();
@@ -1438,7 +1442,7 @@
     // the correct state. This ensures that the underlying socket is put into
     // the state that has been requested by the user. If the ioctl syscall was
     // successful then we need to update the flags to match.
- if (cmd == static_cast<long>(FIONBIO))
+ if (cmd == static_cast<int>(FIONBIO))
     {
       if (*arg)
       {

Modified: branches/release/boost/asio/detail/pop_options.hpp
==============================================================================
--- branches/release/boost/asio/detail/pop_options.hpp (original)
+++ branches/release/boost/asio/detail/pop_options.hpp 2010-10-25 06:44:35 EDT (Mon, 25 Oct 2010)
@@ -31,6 +31,11 @@
 # pragma pack (pop)
 # endif
 
+# if defined(__OBJC__)
+# pragma pop_macro("Protocol")
+# pragma pop_macro("id")
+# endif
+
 #elif defined(__KCC)
 
 // Kai C++

Modified: branches/release/boost/asio/detail/push_options.hpp
==============================================================================
--- branches/release/boost/asio/detail/push_options.hpp (original)
+++ branches/release/boost/asio/detail/push_options.hpp 2010-10-25 06:44:35 EDT (Mon, 25 Oct 2010)
@@ -31,6 +31,13 @@
 # pragma pack (push, 8)
 # endif
 
+# if defined(__OBJC__)
+# pragma push_macro("Protocol")
+# define Protocol cpp_Protocol
+# pragma push_macro("id")
+# define id cpp_id
+# endif
+
 #elif defined(__KCC)
 
 // Kai C++

Modified: branches/release/boost/asio/detail/socket_ops.hpp
==============================================================================
--- branches/release/boost/asio/detail/socket_ops.hpp (original)
+++ branches/release/boost/asio/detail/socket_ops.hpp 2010-10-25 06:44:35 EDT (Mon, 25 Oct 2010)
@@ -222,7 +222,7 @@
     std::size_t* addrlen, boost::system::error_code& ec);
 
 BOOST_ASIO_DECL int ioctl(socket_type s, state_type& state,
- long cmd, ioctl_arg_type* arg, boost::system::error_code& ec);
+ int cmd, ioctl_arg_type* arg, boost::system::error_code& ec);
 
 BOOST_ASIO_DECL int select(int nfds, fd_set* readfds, fd_set* writefds,
     fd_set* exceptfds, timeval* timeout, boost::system::error_code& ec);

Modified: branches/release/boost/asio/detail/timer_queue.hpp
==============================================================================
--- branches/release/boost/asio/detail/timer_queue.hpp (original)
+++ branches/release/boost/asio/detail/timer_queue.hpp 2010-10-25 06:44:35 EDT (Mon, 25 Oct 2010)
@@ -79,36 +79,37 @@
   // function call may need to be interrupted and restarted.
   bool enqueue_timer(const time_type& time, per_timer_data& timer, timer_op* op)
   {
- // Ensure that there is space for the timer in the heap. We reserve here so
- // that the push_back below will not throw due to a reallocation failure.
- heap_.reserve(heap_.size() + 1);
-
- timer.op_queue_.push(op);
+ // Enqueue the timer object.
     if (timer.prev_ == 0 && &timer != timers_)
     {
- // Insert the new timer into the linked list of active timers.
- timer.next_ = timers_;
- timer.prev_ = 0;
- if (timers_)
- timers_->prev_ = &timer;
- timers_ = &timer;
-
- // Put the new timer at the correct position in the heap.
       if (this->is_positive_infinity(time))
       {
+ // No heap entry is required for timers that never expire.
         timer.heap_index_ = (std::numeric_limits<std::size_t>::max)();
- return false; // No need to interrupt reactor as timer never expires.
       }
       else
       {
+ // Put the new timer at the correct position in the heap. This is done
+ // first since push_back() can throw due to allocation failure.
         timer.heap_index_ = heap_.size();
         heap_entry entry = { time, &timer };
         heap_.push_back(entry);
         up_heap(heap_.size() - 1);
       }
+
+ // Insert the new timer into the linked list of active timers.
+ timer.next_ = timers_;
+ timer.prev_ = 0;
+ if (timers_)
+ timers_->prev_ = &timer;
+ timers_ = &timer;
     }
 
- return (heap_[0].timer_ == &timer);
+ // Enqueue the individual timer operation.
+ timer.op_queue_.push(op);
+
+ // Interrupt reactor only if newly added timer is first to expire.
+ return timer.heap_index_ == 0 && timer.op_queue_.front() == op;
   }
 
   // Whether there are no timers in the queue.

Modified: branches/release/boost/asio/error.hpp
==============================================================================
--- branches/release/boost/asio/error.hpp (original)
+++ branches/release/boost/asio/error.hpp 2010-10-25 06:44:35 EDT (Mon, 25 Oct 2010)
@@ -217,11 +217,7 @@
 
 inline const boost::system::error_category& get_system_category()
 {
-#if (BOOST_VERSION < 104400)
- return boost::system::get_system_category();
-#else
   return boost::system::system_category();
-#endif
 }
 
 #if !defined(BOOST_WINDOWS) && !defined(__CYGWIN__)

Modified: branches/release/libs/asio/test/deadline_timer.cpp
==============================================================================
--- branches/release/libs/asio/test/deadline_timer.cpp (original)
+++ branches/release/libs/asio/test/deadline_timer.cpp 2010-10-25 06:44:35 EDT (Mon, 25 Oct 2010)
@@ -261,6 +261,11 @@
   BOOST_CHECK(allocation_count == 0);
 }
 
+void io_service_run(boost::asio::io_service* ios)
+{
+ ios->run();
+}
+
 void deadline_timer_thread_test()
 {
   boost::asio::io_service ios;
@@ -269,7 +274,7 @@
   boost::asio::deadline_timer t2(ios);
   int count = 0;
 
- boost::thread th(boost::bind(&boost::asio::io_service::run, &ios));
+ boost::thread th(boost::bind(io_service_run, &ios));
 
   t2.expires_from_now(boost::posix_time::seconds(2));
   t2.wait();


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