Add io_service::restart() and deprecate io_service::reset().
diff --git a/asio/include/asio/detail/impl/scheduler.ipp b/asio/include/asio/detail/impl/scheduler.ipp
index 999f402..fda2aed 100644
--- a/asio/include/asio/detail/impl/scheduler.ipp
+++ b/asio/include/asio/detail/impl/scheduler.ipp
@@ -240,7 +240,7 @@
   return stopped_;
 }
 
-void scheduler::reset()
+void scheduler::restart()
 {
   mutex::scoped_lock lock(mutex_);
   stopped_ = false;
diff --git a/asio/include/asio/detail/scheduler.hpp b/asio/include/asio/detail/scheduler.hpp
index 44e724f..1c1add8 100644
--- a/asio/include/asio/detail/scheduler.hpp
+++ b/asio/include/asio/detail/scheduler.hpp
@@ -72,8 +72,8 @@
   // Determine whether the io_service is stopped.
   ASIO_DECL bool stopped() const;
 
-  // Reset in preparation for a subsequent run invocation.
-  ASIO_DECL void reset();
+  // Restart in preparation for a subsequent run invocation.
+  ASIO_DECL void restart();
 
   // Notify that some work has started.
   void work_started()
diff --git a/asio/include/asio/detail/win_iocp_io_service.hpp b/asio/include/asio/detail/win_iocp_io_service.hpp
index ea44b6c..a1c4180 100644
--- a/asio/include/asio/detail/win_iocp_io_service.hpp
+++ b/asio/include/asio/detail/win_iocp_io_service.hpp
@@ -83,8 +83,8 @@
     return ::InterlockedExchangeAdd(&stopped_, 0) != 0;
   }
 
-  // Reset in preparation for a subsequent run invocation.
-  void reset()
+  // Restart in preparation for a subsequent run invocation.
+  void restart()
   {
     ::InterlockedExchange(&stopped_, 0);
   }
diff --git a/asio/include/asio/impl/io_service.hpp b/asio/include/asio/impl/io_service.hpp
index 9902d0a..119dd92 100644
--- a/asio/include/asio/impl/io_service.hpp
+++ b/asio/include/asio/impl/io_service.hpp
@@ -64,6 +64,11 @@
   return executor_type(*this);
 }
 
+inline void io_service::reset()
+{
+  restart();
+}
+
 template <typename CompletionHandler>
 ASIO_INITFN_RESULT_TYPE(CompletionHandler, void ())
 io_service::dispatch(ASIO_MOVE_ARG(CompletionHandler) handler)
diff --git a/asio/include/asio/impl/io_service.ipp b/asio/include/asio/impl/io_service.ipp
index 30448c1..3825ef1 100644
--- a/asio/include/asio/impl/io_service.ipp
+++ b/asio/include/asio/impl/io_service.ipp
@@ -116,9 +116,9 @@
   return impl_.stopped();
 }
 
-void io_service::reset()
+void io_service::restart()
 {
-  impl_.reset();
+  impl_.restart();
 }
 
 io_service::service::service(asio::io_service& owner)
diff --git a/asio/include/asio/io_service.hpp b/asio/include/asio/io_service.hpp
index b126ff0..0cc4167 100644
--- a/asio/include/asio/io_service.hpp
+++ b/asio/include/asio/io_service.hpp
@@ -61,8 +61,8 @@
  *
  * @par Thread Safety
  * @e Distinct @e objects: Safe.@n
- * @e Shared @e objects: Safe, with the specific exceptions of the reset() and
- * notify_fork() functions. Calling reset() while there are unfinished run(),
+ * @e Shared @e objects: Safe, with the specific exceptions of the restart() and
+ * notify_fork() functions. Calling restart() while there are unfinished run(),
  * run_one(), poll() or poll_one() calls results in undefined behaviour. The
  * notify_fork() function should not be called while any io_service function,
  * or any function on an I/O object that is associated with the io_service, is
@@ -92,7 +92,7 @@
  *
  * After the exception has been caught, the run(), run_one(), poll() or
  * poll_one() call may be restarted @em without the need for an intervening
- * call to reset(). This allows the thread to rejoin the io_service object's
+ * call to restart(). This allows the thread to rejoin the io_service object's
  * thread pool without impacting any other threads in the pool.
  *
  * For example:
@@ -222,7 +222,7 @@
    * A normal exit from the run() function implies that the io_service object
    * is stopped (the stopped() function returns @c true). Subsequent calls to
    * run(), run_one(), poll() or poll_one() will return immediately unless there
-   * is a prior call to reset().
+   * is a prior call to restart().
    *
    * @return The number of handlers that were executed.
    *
@@ -250,7 +250,7 @@
    * A normal exit from the run() function implies that the io_service object
    * is stopped (the stopped() function returns @c true). Subsequent calls to
    * run(), run_one(), poll() or poll_one() will return immediately unless there
-   * is a prior call to reset().
+   * is a prior call to restart().
    *
    * @param ec Set to indicate what error occurred, if any.
    *
@@ -275,7 +275,7 @@
    * implies that the io_service object is stopped (the stopped() function
    * returns @c true). Subsequent calls to run(), run_one(), poll() or
    * poll_one() will return immediately unless there is a prior call to
-   * reset().
+   * restart().
    *
    * @throws asio::system_error Thrown on failure.
    */
@@ -291,7 +291,7 @@
    * implies that the io_service object is stopped (the stopped() function
    * returns @c true). Subsequent calls to run(), run_one(), poll() or
    * poll_one() will return immediately unless there is a prior call to
-   * reset().
+   * restart().
    *
    * @return The number of handlers that were executed.
    */
@@ -350,7 +350,7 @@
    * This function does not block, but instead simply signals the io_service to
    * stop. All invocations of its run() or run_one() member functions should
    * return as soon as possible. Subsequent calls to run(), run_one(), poll()
-   * or poll_one() will return immediately until reset() is called.
+   * or poll_one() will return immediately until restart() is called.
    */
   ASIO_DECL void stop();
 
@@ -366,18 +366,32 @@
    */
   ASIO_DECL bool stopped() const;
 
-  /// Reset the io_service in preparation for a subsequent run() invocation.
+  /// Restart the io_service in preparation for a subsequent run() invocation.
   /**
    * This function must be called prior to any second or later set of
    * invocations of the run(), run_one(), poll() or poll_one() functions when a
    * previous invocation of these functions returned due to the io_service
-   * being stopped or running out of work. After a call to reset(), the
+   * being stopped or running out of work. After a call to restart(), the
    * io_service object's stopped() function will return @c false.
    *
    * This function must not be called while there are any unfinished calls to
    * the run(), run_one(), poll() or poll_one() functions.
    */
-  ASIO_DECL void reset();
+  ASIO_DECL void restart();
+
+  /// (Deprecated: Use restart().) Reset the io_service in preparation for a
+  /// subsequent run() invocation.
+  /**
+   * This function must be called prior to any second or later set of
+   * invocations of the run(), run_one(), poll() or poll_one() functions when a
+   * previous invocation of these functions returned due to the io_service
+   * being stopped or running out of work. After a call to restart(), the
+   * io_service object's stopped() function will return @c false.
+   *
+   * This function must not be called while there are any unfinished calls to
+   * the run(), run_one(), poll() or poll_one() functions.
+   */
+  void reset();
 
   /// Request the io_service to invoke the given handler.
   /**
diff --git a/asio/src/examples/cpp03/porthopper/client.cpp b/asio/src/examples/cpp03/porthopper/client.cpp
index 79ce9d8..6fd2572 100644
--- a/asio/src/examples/cpp03/porthopper/client.cpp
+++ b/asio/src/examples/cpp03/porthopper/client.cpp
@@ -147,7 +147,7 @@
 
         // Run the operations in parallel. This will block until all operations
         // have finished, or until the io_service is interrupted. (No threads!)
-        io_service.reset();
+        io_service.restart();
         io_service.run();
 
         // If the io_service.run() was interrupted then we have received a frame
diff --git a/asio/src/tests/unit/buffered_read_stream.cpp b/asio/src/tests/unit/buffered_read_stream.cpp
index 0cce30f..2721975 100644
--- a/asio/src/tests/unit/buffered_read_stream.cpp
+++ b/asio/src/tests/unit/buffered_read_stream.cpp
@@ -268,7 +268,7 @@
   stream_type server_socket(io_service);
   acceptor.async_accept(server_socket.lowest_layer(), &handle_accept);
   io_service.run();
-  io_service.reset();
+  io_service.restart();
 
   const char write_data[]
     = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
@@ -281,7 +281,7 @@
         asio::buffer(write_buf + bytes_written),
         bindns::bind(handle_write, _1, _2, &bytes_written));
     io_service.run();
-    io_service.reset();
+    io_service.restart();
   }
 
   char read_data[sizeof(write_data)];
@@ -294,7 +294,7 @@
         asio::buffer(read_buf + bytes_read),
         bindns::bind(handle_read, _1, _2, &bytes_read));
     io_service.run();
-    io_service.reset();
+    io_service.restart();
   }
 
   ASIO_CHECK(bytes_written == sizeof(write_data));
@@ -308,7 +308,7 @@
         asio::buffer(write_buf + bytes_written),
         bindns::bind(handle_write, _1, _2, &bytes_written));
     io_service.run();
-    io_service.reset();
+    io_service.restart();
   }
 
   bytes_read = 0;
@@ -318,7 +318,7 @@
         asio::buffer(read_buf + bytes_read),
         bindns::bind(handle_read, _1, _2, &bytes_read));
     io_service.run();
-    io_service.reset();
+    io_service.restart();
   }
 
   ASIO_CHECK(bytes_written == sizeof(write_data));
diff --git a/asio/src/tests/unit/buffered_stream.cpp b/asio/src/tests/unit/buffered_stream.cpp
index 45ae6a0..bb5e55f 100644
--- a/asio/src/tests/unit/buffered_stream.cpp
+++ b/asio/src/tests/unit/buffered_stream.cpp
@@ -286,7 +286,7 @@
   stream_type server_socket(io_service);
   acceptor.async_accept(server_socket.lowest_layer(), &handle_accept);
   io_service.run();
-  io_service.reset();
+  io_service.restart();
 
   const char write_data[]
     = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
@@ -299,11 +299,11 @@
         asio::buffer(write_buf + bytes_written),
         bindns::bind(handle_write, _1, _2, &bytes_written));
     io_service.run();
-    io_service.reset();
+    io_service.restart();
     client_socket.async_flush(
         bindns::bind(handle_flush, _1));
     io_service.run();
-    io_service.reset();
+    io_service.restart();
   }
 
   char read_data[sizeof(write_data)];
@@ -316,7 +316,7 @@
         asio::buffer(read_buf + bytes_read),
         bindns::bind(handle_read, _1, _2, &bytes_read));
     io_service.run();
-    io_service.reset();
+    io_service.restart();
   }
 
   ASIO_CHECK(bytes_written == sizeof(write_data));
@@ -330,11 +330,11 @@
         asio::buffer(write_buf + bytes_written),
         bindns::bind(handle_write, _1, _2, &bytes_written));
     io_service.run();
-    io_service.reset();
+    io_service.restart();
     server_socket.async_flush(
         bindns::bind(handle_flush, _1));
     io_service.run();
-    io_service.reset();
+    io_service.restart();
   }
 
   bytes_read = 0;
@@ -344,7 +344,7 @@
         asio::buffer(read_buf + bytes_read),
         bindns::bind(handle_read, _1, _2, &bytes_read));
     io_service.run();
-    io_service.reset();
+    io_service.restart();
   }
 
   ASIO_CHECK(bytes_written == sizeof(write_data));
diff --git a/asio/src/tests/unit/buffered_write_stream.cpp b/asio/src/tests/unit/buffered_write_stream.cpp
index d37db03..c4e4ede 100644
--- a/asio/src/tests/unit/buffered_write_stream.cpp
+++ b/asio/src/tests/unit/buffered_write_stream.cpp
@@ -275,7 +275,7 @@
   stream_type server_socket(io_service);
   acceptor.async_accept(server_socket.lowest_layer(), &handle_accept);
   io_service.run();
-  io_service.reset();
+  io_service.restart();
 
   const char write_data[]
     = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
@@ -288,11 +288,11 @@
         asio::buffer(write_buf + bytes_written),
         bindns::bind(handle_write, _1, _2, &bytes_written));
     io_service.run();
-    io_service.reset();
+    io_service.restart();
     client_socket.async_flush(
         bindns::bind(handle_flush, _1));
     io_service.run();
-    io_service.reset();
+    io_service.restart();
   }
 
   char read_data[sizeof(write_data)];
@@ -305,7 +305,7 @@
         asio::buffer(read_buf + bytes_read),
         bindns::bind(handle_read, _1, _2, &bytes_read));
     io_service.run();
-    io_service.reset();
+    io_service.restart();
   }
 
   ASIO_CHECK(bytes_written == sizeof(write_data));
@@ -319,11 +319,11 @@
         asio::buffer(write_buf + bytes_written),
         bindns::bind(handle_write, _1, _2, &bytes_written));
     io_service.run();
-    io_service.reset();
+    io_service.restart();
     server_socket.async_flush(
         bindns::bind(handle_flush, _1));
     io_service.run();
-    io_service.reset();
+    io_service.restart();
   }
 
   bytes_read = 0;
@@ -333,7 +333,7 @@
         asio::buffer(read_buf + bytes_read),
         bindns::bind(handle_read, _1, _2, &bytes_read));
     io_service.run();
-    io_service.reset();
+    io_service.restart();
   }
 
   ASIO_CHECK(bytes_written == sizeof(write_data));
diff --git a/asio/src/tests/unit/deadline_timer.cpp b/asio/src/tests/unit/deadline_timer.cpp
index 49da58c..6754b48 100644
--- a/asio/src/tests/unit/deadline_timer.cpp
+++ b/asio/src/tests/unit/deadline_timer.cpp
@@ -146,7 +146,7 @@
   // No completions can be delivered until run() is called.
   ASIO_CHECK(count == 3);
 
-  ios.reset();
+  ios.restart();
   ios.run();
 
   // The run() call will not return until all operations have finished, and
@@ -168,7 +168,7 @@
   // No completions can be delivered until run() is called.
   ASIO_CHECK(count == 0);
 
-  ios.reset();
+  ios.restart();
   ios.run();
 
   // The timer should have been cancelled, so count should not have changed.
@@ -184,7 +184,7 @@
   t5.async_wait(boost::bind(increment_if_not_cancelled, &count,
         asio::placeholders::error));
 
-  ios.reset();
+  ios.restart();
   ios.run();
 
   // The timer should not have been cancelled, so count should have changed.
@@ -208,7 +208,7 @@
   asio::deadline_timer t8(ios, seconds(1));
   t8.async_wait(boost::bind(cancel_one_timer, &t7));
 
-  ios.reset();
+  ios.restart();
   ios.run();
 
   // One of the waits should not have been cancelled, so count should have
diff --git a/asio/src/tests/unit/io_service.cpp b/asio/src/tests/unit/io_service.cpp
index 672c81d..d604f97 100644
--- a/asio/src/tests/unit/io_service.cpp
+++ b/asio/src/tests/unit/io_service.cpp
@@ -130,7 +130,7 @@
   ASIO_CHECK(count == 1);
 
   count = 0;
-  ios.reset();
+  ios.restart();
   ios.post(bindns::bind(increment, &count));
   ios.post(bindns::bind(increment, &count));
   ios.post(bindns::bind(increment, &count));
@@ -148,7 +148,7 @@
   ASIO_CHECK(count == 5);
 
   count = 0;
-  ios.reset();
+  ios.restart();
   io_service::work* w = new io_service::work(ios);
   ios.post(bindns::bind(&io_service::stop, &ios));
   ASIO_CHECK(!ios.stopped());
@@ -158,7 +158,7 @@
   ASIO_CHECK(ios.stopped());
   ASIO_CHECK(count == 0);
 
-  ios.reset();
+  ios.restart();
   ios.post(bindns::bind(increment, &count));
   delete w;
 
@@ -173,7 +173,7 @@
   ASIO_CHECK(count == 1);
 
   count = 10;
-  ios.reset();
+  ios.restart();
   ios.post(bindns::bind(decrement_to_zero, &ios, &count));
 
   // No handlers can be called until run() is called.
@@ -187,7 +187,7 @@
   ASIO_CHECK(count == 0);
 
   count = 10;
-  ios.reset();
+  ios.restart();
   ios.post(bindns::bind(nested_decrement_to_zero, &ios, &count));
 
   // No handlers can be called until run() is called.
@@ -201,7 +201,7 @@
   ASIO_CHECK(count == 0);
 
   count = 10;
-  ios.reset();
+  ios.restart();
   ios.dispatch(bindns::bind(nested_decrement_to_zero, &ios, &count));
 
   // No handlers can be called until run() is called, even though nested
@@ -217,7 +217,7 @@
 
   count = 0;
   int count2 = 0;
-  ios.reset();
+  ios.restart();
   ASIO_CHECK(!ios.stopped());
   ios.post(bindns::bind(start_sleep_increments, &ios, &count));
   ios.post(bindns::bind(start_sleep_increments, &ios, &count2));
@@ -234,7 +234,7 @@
   count = 10;
   io_service ios2;
   ios.dispatch(ios2.wrap(bindns::bind(decrement_to_zero, &ios2, &count)));
-  ios.reset();
+  ios.restart();
   ASIO_CHECK(!ios.stopped());
   ios.run();
 
@@ -250,7 +250,7 @@
 
   count = 0;
   int exception_count = 0;
-  ios.reset();
+  ios.restart();
   ios.post(&throw_exception);
   ios.post(bindns::bind(increment, &count));
   ios.post(bindns::bind(increment, &count));
diff --git a/asio/src/tests/unit/read.cpp b/asio/src/tests/unit/read.cpp
index ba4aadb..027b1ea 100644
--- a/asio/src/tests/unit/read.cpp
+++ b/asio/src/tests/unit/read.cpp
@@ -1864,7 +1864,7 @@
   asio::async_read(s, buffers,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
@@ -1876,7 +1876,7 @@
   asio::async_read(s, buffers,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
@@ -1888,7 +1888,7 @@
   asio::async_read(s, buffers,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
@@ -1897,7 +1897,7 @@
   memset(read_buf, 0, sizeof(read_buf));
   int i = asio::async_read(s, buffers, archetypes::lazy_handler());
   ASIO_CHECK(i == 42);
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
 }
@@ -1926,7 +1926,7 @@
   asio::async_read(s, buffers,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
@@ -1938,7 +1938,7 @@
   asio::async_read(s, buffers,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
@@ -1950,7 +1950,7 @@
   asio::async_read(s, buffers,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
@@ -1959,7 +1959,7 @@
   memset(read_buf, 0, sizeof(read_buf));
   int i = asio::async_read(s, buffers, archetypes::lazy_handler());
   ASIO_CHECK(i == 42);
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
 #endif // defined(ASIO_HAS_BOOST_ARRAY)
@@ -1989,7 +1989,7 @@
   asio::async_read(s, buffers,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
@@ -2001,7 +2001,7 @@
   asio::async_read(s, buffers,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
@@ -2013,7 +2013,7 @@
   asio::async_read(s, buffers,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
@@ -2022,7 +2022,7 @@
   memset(read_buf, 0, sizeof(read_buf));
   int i = asio::async_read(s, buffers, archetypes::lazy_handler());
   ASIO_CHECK(i == 42);
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
 #endif // defined(ASIO_HAS_STD_ARRAY)
@@ -2051,7 +2051,7 @@
   asio::async_read(s, buffers,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
@@ -2063,7 +2063,7 @@
   asio::async_read(s, buffers,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
@@ -2075,7 +2075,7 @@
   asio::async_read(s, buffers,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
@@ -2084,7 +2084,7 @@
   memset(read_buf, 0, sizeof(read_buf));
   int i = asio::async_read(s, buffers, archetypes::lazy_handler());
   ASIO_CHECK(i == 42);
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
 }
@@ -2109,7 +2109,7 @@
   asio::async_read(s, sb,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == sizeof(read_data));
@@ -2122,7 +2122,7 @@
   asio::async_read(s, sb,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == sizeof(read_data));
@@ -2135,7 +2135,7 @@
   asio::async_read(s, sb,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == sizeof(read_data));
@@ -2145,7 +2145,7 @@
   sb.consume(sb.size());
   int i = asio::async_read(s, sb, archetypes::lazy_handler());
   ASIO_CHECK(i == 42);
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(sb.size() == sizeof(read_data));
   ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
@@ -2173,7 +2173,7 @@
   asio::async_read(s, buffers, asio::transfer_all(),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
@@ -2185,7 +2185,7 @@
   asio::async_read(s, buffers, asio::transfer_all(),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
@@ -2197,7 +2197,7 @@
   asio::async_read(s, buffers, asio::transfer_all(),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
@@ -2208,7 +2208,7 @@
   asio::async_read(s, buffers, asio::transfer_at_least(1),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
@@ -2220,7 +2220,7 @@
   asio::async_read(s, buffers, asio::transfer_at_least(1),
       bindns::bind(async_read_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 1));
@@ -2232,7 +2232,7 @@
   asio::async_read(s, buffers, asio::transfer_at_least(1),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 10));
@@ -2243,7 +2243,7 @@
   asio::async_read(s, buffers, asio::transfer_at_least(10),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
@@ -2255,7 +2255,7 @@
   asio::async_read(s, buffers, asio::transfer_at_least(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 10));
@@ -2267,7 +2267,7 @@
   asio::async_read(s, buffers, asio::transfer_at_least(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 10));
@@ -2278,7 +2278,7 @@
   asio::async_read(s, buffers, asio::transfer_at_least(42),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
@@ -2290,7 +2290,7 @@
   asio::async_read(s, buffers, asio::transfer_at_least(42),
       bindns::bind(async_read_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 42));
@@ -2302,7 +2302,7 @@
   asio::async_read(s, buffers, asio::transfer_at_least(42),
       bindns::bind(async_read_handler,
         _1, _2, 50, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 50));
@@ -2313,7 +2313,7 @@
   asio::async_read(s, buffers, asio::transfer_exactly(1),
       bindns::bind(async_read_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 1));
@@ -2325,7 +2325,7 @@
   asio::async_read(s, buffers, asio::transfer_exactly(1),
       bindns::bind(async_read_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 1));
@@ -2337,7 +2337,7 @@
   asio::async_read(s, buffers, asio::transfer_exactly(1),
       bindns::bind(async_read_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 1));
@@ -2348,7 +2348,7 @@
   asio::async_read(s, buffers, asio::transfer_exactly(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 10));
@@ -2360,7 +2360,7 @@
   asio::async_read(s, buffers, asio::transfer_exactly(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 10));
@@ -2372,7 +2372,7 @@
   asio::async_read(s, buffers, asio::transfer_exactly(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 10));
@@ -2383,7 +2383,7 @@
   asio::async_read(s, buffers, asio::transfer_exactly(42),
       bindns::bind(async_read_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 42));
@@ -2395,7 +2395,7 @@
   asio::async_read(s, buffers, asio::transfer_exactly(42),
       bindns::bind(async_read_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 42));
@@ -2407,7 +2407,7 @@
   asio::async_read(s, buffers, asio::transfer_exactly(42),
       bindns::bind(async_read_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 42));
@@ -2418,7 +2418,7 @@
   asio::async_read(s, buffers, old_style_transfer_all,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
@@ -2430,7 +2430,7 @@
   asio::async_read(s, buffers, old_style_transfer_all,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
@@ -2442,7 +2442,7 @@
   asio::async_read(s, buffers, old_style_transfer_all,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
@@ -2453,7 +2453,7 @@
   asio::async_read(s, buffers, short_transfer,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
@@ -2465,7 +2465,7 @@
   asio::async_read(s, buffers, short_transfer,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
@@ -2477,7 +2477,7 @@
   asio::async_read(s, buffers, short_transfer,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
@@ -2487,7 +2487,7 @@
   int i = asio::async_read(s, buffers,
       short_transfer, archetypes::lazy_handler());
   ASIO_CHECK(i == 42);
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
 }
@@ -2516,7 +2516,7 @@
   asio::async_read(s, buffers, asio::transfer_all(),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
@@ -2528,7 +2528,7 @@
   asio::async_read(s, buffers, asio::transfer_all(),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
@@ -2540,7 +2540,7 @@
   asio::async_read(s, buffers, asio::transfer_all(),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
@@ -2551,7 +2551,7 @@
   asio::async_read(s, buffers, asio::transfer_at_least(1),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
@@ -2563,7 +2563,7 @@
   asio::async_read(s, buffers, asio::transfer_at_least(1),
       bindns::bind(async_read_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 1));
@@ -2575,7 +2575,7 @@
   asio::async_read(s, buffers, asio::transfer_at_least(1),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 10));
@@ -2586,7 +2586,7 @@
   asio::async_read(s, buffers, asio::transfer_at_least(10),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
@@ -2598,7 +2598,7 @@
   asio::async_read(s, buffers, asio::transfer_at_least(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 10));
@@ -2610,7 +2610,7 @@
   asio::async_read(s, buffers, asio::transfer_at_least(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 10));
@@ -2621,7 +2621,7 @@
   asio::async_read(s, buffers, asio::transfer_at_least(42),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
@@ -2633,7 +2633,7 @@
   asio::async_read(s, buffers, asio::transfer_at_least(42),
       bindns::bind(async_read_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 42));
@@ -2645,7 +2645,7 @@
   asio::async_read(s, buffers, asio::transfer_at_least(42),
       bindns::bind(async_read_handler,
         _1, _2, 50, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 50));
@@ -2656,7 +2656,7 @@
   asio::async_read(s, buffers, asio::transfer_exactly(1),
       bindns::bind(async_read_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 1));
@@ -2668,7 +2668,7 @@
   asio::async_read(s, buffers, asio::transfer_exactly(1),
       bindns::bind(async_read_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 1));
@@ -2680,7 +2680,7 @@
   asio::async_read(s, buffers, asio::transfer_exactly(1),
       bindns::bind(async_read_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 1));
@@ -2691,7 +2691,7 @@
   asio::async_read(s, buffers, asio::transfer_exactly(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 10));
@@ -2703,7 +2703,7 @@
   asio::async_read(s, buffers, asio::transfer_exactly(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 10));
@@ -2715,7 +2715,7 @@
   asio::async_read(s, buffers, asio::transfer_exactly(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 10));
@@ -2726,7 +2726,7 @@
   asio::async_read(s, buffers, asio::transfer_exactly(42),
       bindns::bind(async_read_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 42));
@@ -2738,7 +2738,7 @@
   asio::async_read(s, buffers, asio::transfer_exactly(42),
       bindns::bind(async_read_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 42));
@@ -2750,7 +2750,7 @@
   asio::async_read(s, buffers, asio::transfer_exactly(42),
       bindns::bind(async_read_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 42));
@@ -2761,7 +2761,7 @@
   asio::async_read(s, buffers, old_style_transfer_all,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
@@ -2773,7 +2773,7 @@
   asio::async_read(s, buffers, old_style_transfer_all,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
@@ -2785,7 +2785,7 @@
   asio::async_read(s, buffers, old_style_transfer_all,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
@@ -2796,7 +2796,7 @@
   asio::async_read(s, buffers, short_transfer,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
@@ -2808,7 +2808,7 @@
   asio::async_read(s, buffers, short_transfer,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
@@ -2820,7 +2820,7 @@
   asio::async_read(s, buffers, short_transfer,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
@@ -2830,7 +2830,7 @@
   int i = asio::async_read(s, buffers,
       short_transfer, archetypes::lazy_handler());
   ASIO_CHECK(i == 42);
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
 #endif // defined(ASIO_HAS_BOOST_ARRAY)
@@ -2860,7 +2860,7 @@
   asio::async_read(s, buffers, asio::transfer_all(),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
@@ -2872,7 +2872,7 @@
   asio::async_read(s, buffers, asio::transfer_all(),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
@@ -2884,7 +2884,7 @@
   asio::async_read(s, buffers, asio::transfer_all(),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
@@ -2895,7 +2895,7 @@
   asio::async_read(s, buffers, asio::transfer_at_least(1),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
@@ -2907,7 +2907,7 @@
   asio::async_read(s, buffers, asio::transfer_at_least(1),
       bindns::bind(async_read_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 1));
@@ -2919,7 +2919,7 @@
   asio::async_read(s, buffers, asio::transfer_at_least(1),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 10));
@@ -2930,7 +2930,7 @@
   asio::async_read(s, buffers, asio::transfer_at_least(10),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
@@ -2942,7 +2942,7 @@
   asio::async_read(s, buffers, asio::transfer_at_least(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 10));
@@ -2954,7 +2954,7 @@
   asio::async_read(s, buffers, asio::transfer_at_least(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 10));
@@ -2965,7 +2965,7 @@
   asio::async_read(s, buffers, asio::transfer_at_least(42),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
@@ -2977,7 +2977,7 @@
   asio::async_read(s, buffers, asio::transfer_at_least(42),
       bindns::bind(async_read_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 42));
@@ -2989,7 +2989,7 @@
   asio::async_read(s, buffers, asio::transfer_at_least(42),
       bindns::bind(async_read_handler,
         _1, _2, 50, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 50));
@@ -3000,7 +3000,7 @@
   asio::async_read(s, buffers, asio::transfer_exactly(1),
       bindns::bind(async_read_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 1));
@@ -3012,7 +3012,7 @@
   asio::async_read(s, buffers, asio::transfer_exactly(1),
       bindns::bind(async_read_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 1));
@@ -3024,7 +3024,7 @@
   asio::async_read(s, buffers, asio::transfer_exactly(1),
       bindns::bind(async_read_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 1));
@@ -3035,7 +3035,7 @@
   asio::async_read(s, buffers, asio::transfer_exactly(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 10));
@@ -3047,7 +3047,7 @@
   asio::async_read(s, buffers, asio::transfer_exactly(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 10));
@@ -3059,7 +3059,7 @@
   asio::async_read(s, buffers, asio::transfer_exactly(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 10));
@@ -3070,7 +3070,7 @@
   asio::async_read(s, buffers, asio::transfer_exactly(42),
       bindns::bind(async_read_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 42));
@@ -3082,7 +3082,7 @@
   asio::async_read(s, buffers, asio::transfer_exactly(42),
       bindns::bind(async_read_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 42));
@@ -3094,7 +3094,7 @@
   asio::async_read(s, buffers, asio::transfer_exactly(42),
       bindns::bind(async_read_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 42));
@@ -3105,7 +3105,7 @@
   asio::async_read(s, buffers, old_style_transfer_all,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
@@ -3117,7 +3117,7 @@
   asio::async_read(s, buffers, old_style_transfer_all,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
@@ -3129,7 +3129,7 @@
   asio::async_read(s, buffers, old_style_transfer_all,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
@@ -3140,7 +3140,7 @@
   asio::async_read(s, buffers, short_transfer,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
@@ -3152,7 +3152,7 @@
   asio::async_read(s, buffers, short_transfer,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
@@ -3164,7 +3164,7 @@
   asio::async_read(s, buffers, short_transfer,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
@@ -3174,7 +3174,7 @@
   int i = asio::async_read(s, buffers,
       short_transfer, archetypes::lazy_handler());
   ASIO_CHECK(i == 42);
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
 #endif // defined(ASIO_HAS_STD_ARRAY)
@@ -3203,7 +3203,7 @@
   asio::async_read(s, buffers, asio::transfer_all(),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
@@ -3215,7 +3215,7 @@
   asio::async_read(s, buffers, asio::transfer_all(),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
@@ -3227,7 +3227,7 @@
   asio::async_read(s, buffers, asio::transfer_all(),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
@@ -3238,7 +3238,7 @@
   asio::async_read(s, buffers, asio::transfer_at_least(1),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
@@ -3250,7 +3250,7 @@
   asio::async_read(s, buffers, asio::transfer_at_least(1),
       bindns::bind(async_read_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 1));
@@ -3262,7 +3262,7 @@
   asio::async_read(s, buffers, asio::transfer_at_least(1),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 10));
@@ -3273,7 +3273,7 @@
   asio::async_read(s, buffers, asio::transfer_at_least(10),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
@@ -3285,7 +3285,7 @@
   asio::async_read(s, buffers, asio::transfer_at_least(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 10));
@@ -3297,7 +3297,7 @@
   asio::async_read(s, buffers, asio::transfer_at_least(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 10));
@@ -3308,7 +3308,7 @@
   asio::async_read(s, buffers, asio::transfer_at_least(42),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
@@ -3320,7 +3320,7 @@
   asio::async_read(s, buffers, asio::transfer_at_least(42),
       bindns::bind(async_read_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 42));
@@ -3332,7 +3332,7 @@
   asio::async_read(s, buffers, asio::transfer_at_least(42),
       bindns::bind(async_read_handler,
         _1, _2, 50, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 50));
@@ -3343,7 +3343,7 @@
   asio::async_read(s, buffers, asio::transfer_exactly(1),
       bindns::bind(async_read_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 1));
@@ -3355,7 +3355,7 @@
   asio::async_read(s, buffers, asio::transfer_exactly(1),
       bindns::bind(async_read_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 1));
@@ -3367,7 +3367,7 @@
   asio::async_read(s, buffers, asio::transfer_exactly(1),
       bindns::bind(async_read_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 1));
@@ -3378,7 +3378,7 @@
   asio::async_read(s, buffers, asio::transfer_exactly(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 10));
@@ -3390,7 +3390,7 @@
   asio::async_read(s, buffers, asio::transfer_exactly(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 10));
@@ -3402,7 +3402,7 @@
   asio::async_read(s, buffers, asio::transfer_exactly(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 10));
@@ -3413,7 +3413,7 @@
   asio::async_read(s, buffers, asio::transfer_exactly(42),
       bindns::bind(async_read_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 42));
@@ -3425,7 +3425,7 @@
   asio::async_read(s, buffers, asio::transfer_exactly(42),
       bindns::bind(async_read_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 42));
@@ -3437,7 +3437,7 @@
   asio::async_read(s, buffers, asio::transfer_exactly(42),
       bindns::bind(async_read_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 42));
@@ -3448,7 +3448,7 @@
   asio::async_read(s, buffers, old_style_transfer_all,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
@@ -3460,7 +3460,7 @@
   asio::async_read(s, buffers, old_style_transfer_all,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
@@ -3472,7 +3472,7 @@
   asio::async_read(s, buffers, old_style_transfer_all,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
@@ -3483,7 +3483,7 @@
   asio::async_read(s, buffers, short_transfer,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
@@ -3495,7 +3495,7 @@
   asio::async_read(s, buffers, short_transfer,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
@@ -3507,7 +3507,7 @@
   asio::async_read(s, buffers, short_transfer,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
@@ -3517,7 +3517,7 @@
   int i = asio::async_read(s, buffers,
       short_transfer, archetypes::lazy_handler());
   ASIO_CHECK(i == 42);
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(s.check_buffers(buffers, sizeof(read_data)));
 }
@@ -3542,7 +3542,7 @@
   asio::async_read(s, sb, asio::transfer_all(),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == sizeof(read_data));
@@ -3555,7 +3555,7 @@
   asio::async_read(s, sb, asio::transfer_all(),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == sizeof(read_data));
@@ -3568,7 +3568,7 @@
   asio::async_read(s, sb, asio::transfer_all(),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == sizeof(read_data));
@@ -3580,7 +3580,7 @@
   asio::async_read(s, sb, asio::transfer_at_least(1),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == sizeof(read_data));
@@ -3593,7 +3593,7 @@
   asio::async_read(s, sb, asio::transfer_at_least(1),
       bindns::bind(async_read_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == 1);
@@ -3606,7 +3606,7 @@
   asio::async_read(s, sb, asio::transfer_at_least(1),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == 10);
@@ -3618,7 +3618,7 @@
   asio::async_read(s, sb, asio::transfer_at_least(10),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == sizeof(read_data));
@@ -3631,7 +3631,7 @@
   asio::async_read(s, sb, asio::transfer_at_least(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == 10);
@@ -3644,7 +3644,7 @@
   asio::async_read(s, sb, asio::transfer_at_least(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == 10);
@@ -3656,7 +3656,7 @@
   asio::async_read(s, sb, asio::transfer_at_least(42),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == sizeof(read_data));
@@ -3669,7 +3669,7 @@
   asio::async_read(s, sb, asio::transfer_at_least(42),
       bindns::bind(async_read_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == 42);
@@ -3682,7 +3682,7 @@
   asio::async_read(s, sb, asio::transfer_at_least(42),
       bindns::bind(async_read_handler,
         _1, _2, 50, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == 50);
@@ -3694,7 +3694,7 @@
   asio::async_read(s, sb, asio::transfer_exactly(1),
       bindns::bind(async_read_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == 1);
@@ -3707,7 +3707,7 @@
   asio::async_read(s, sb, asio::transfer_exactly(1),
       bindns::bind(async_read_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == 1);
@@ -3720,7 +3720,7 @@
   asio::async_read(s, sb, asio::transfer_exactly(1),
       bindns::bind(async_read_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == 1);
@@ -3732,7 +3732,7 @@
   asio::async_read(s, sb, asio::transfer_exactly(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == 10);
@@ -3745,7 +3745,7 @@
   asio::async_read(s, sb, asio::transfer_exactly(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == 10);
@@ -3758,7 +3758,7 @@
   asio::async_read(s, sb, asio::transfer_exactly(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == 10);
@@ -3770,7 +3770,7 @@
   asio::async_read(s, sb, asio::transfer_exactly(42),
       bindns::bind(async_read_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == 42);
@@ -3783,7 +3783,7 @@
   asio::async_read(s, sb, asio::transfer_exactly(42),
       bindns::bind(async_read_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == 42);
@@ -3796,7 +3796,7 @@
   asio::async_read(s, sb, asio::transfer_exactly(42),
       bindns::bind(async_read_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == 42);
@@ -3808,7 +3808,7 @@
   asio::async_read(s, sb, old_style_transfer_all,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == sizeof(read_data));
@@ -3821,7 +3821,7 @@
   asio::async_read(s, sb, old_style_transfer_all,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == sizeof(read_data));
@@ -3834,7 +3834,7 @@
   asio::async_read(s, sb, old_style_transfer_all,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == sizeof(read_data));
@@ -3846,7 +3846,7 @@
   asio::async_read(s, sb, short_transfer,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == sizeof(read_data));
@@ -3859,7 +3859,7 @@
   asio::async_read(s, sb, short_transfer,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == sizeof(read_data));
@@ -3872,7 +3872,7 @@
   asio::async_read(s, sb, short_transfer,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == sizeof(read_data));
@@ -3883,7 +3883,7 @@
   int i = asio::async_read(s, sb,
       short_transfer, archetypes::lazy_handler());
   ASIO_CHECK(i == 42);
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(sb.size() == sizeof(read_data));
   ASIO_CHECK(s.check_buffers(sb.data(), sizeof(read_data)));
diff --git a/asio/src/tests/unit/read_at.cpp b/asio/src/tests/unit/read_at.cpp
index bfcf829..a4c8c2a 100644
--- a/asio/src/tests/unit/read_at.cpp
+++ b/asio/src/tests/unit/read_at.cpp
@@ -3437,7 +3437,7 @@
   asio::async_read_at(s, 0, buffers,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
@@ -3448,7 +3448,7 @@
   asio::async_read_at(s, 1234, buffers,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
@@ -3460,7 +3460,7 @@
   asio::async_read_at(s, 0, buffers,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
@@ -3472,7 +3472,7 @@
   asio::async_read_at(s, 1234, buffers,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
@@ -3484,7 +3484,7 @@
   asio::async_read_at(s, 0, buffers,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
@@ -3496,7 +3496,7 @@
   asio::async_read_at(s, 1234, buffers,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
@@ -3506,7 +3506,7 @@
   int i = asio::async_read_at(s, 1234, buffers,
       archetypes::lazy_handler());
   ASIO_CHECK(i == 42);
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
 }
@@ -3535,7 +3535,7 @@
   asio::async_read_at(s, 0, buffers,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
@@ -3546,7 +3546,7 @@
   asio::async_read_at(s, 1234, buffers,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
@@ -3558,7 +3558,7 @@
   asio::async_read_at(s, 0, buffers,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
@@ -3570,7 +3570,7 @@
   asio::async_read_at(s, 1234, buffers,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
@@ -3582,7 +3582,7 @@
   asio::async_read_at(s, 0, buffers,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
@@ -3594,7 +3594,7 @@
   asio::async_read_at(s, 1234, buffers,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
@@ -3604,7 +3604,7 @@
   int i = asio::async_read_at(s, 1234, buffers,
       archetypes::lazy_handler());
   ASIO_CHECK(i == 42);
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
 #endif // defined(ASIO_HAS_BOOST_ARRAY)
@@ -3634,7 +3634,7 @@
   asio::async_read_at(s, 0, buffers,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
@@ -3645,7 +3645,7 @@
   asio::async_read_at(s, 1234, buffers,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
@@ -3657,7 +3657,7 @@
   asio::async_read_at(s, 0, buffers,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
@@ -3669,7 +3669,7 @@
   asio::async_read_at(s, 1234, buffers,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
@@ -3681,7 +3681,7 @@
   asio::async_read_at(s, 0, buffers,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
@@ -3693,7 +3693,7 @@
   asio::async_read_at(s, 1234, buffers,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
@@ -3703,7 +3703,7 @@
   int i = asio::async_read_at(s, 1234, buffers,
       archetypes::lazy_handler());
   ASIO_CHECK(i == 42);
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
 #endif // defined(ASIO_HAS_STD_ARRAY)
@@ -3732,7 +3732,7 @@
   asio::async_read_at(s, 0, buffers,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
@@ -3743,7 +3743,7 @@
   asio::async_read_at(s, 1234, buffers,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
@@ -3755,7 +3755,7 @@
   asio::async_read_at(s, 0, buffers,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
@@ -3767,7 +3767,7 @@
   asio::async_read_at(s, 1234, buffers,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
@@ -3779,7 +3779,7 @@
   asio::async_read_at(s, 0, buffers,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
@@ -3791,7 +3791,7 @@
   asio::async_read_at(s, 1234, buffers,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
@@ -3801,7 +3801,7 @@
   int i = asio::async_read_at(s, 1234, buffers,
       archetypes::lazy_handler());
   ASIO_CHECK(i == 42);
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
 }
@@ -3826,7 +3826,7 @@
   asio::async_read_at(s, 0, sb,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == sizeof(read_data));
@@ -3838,7 +3838,7 @@
   asio::async_read_at(s, 1234, sb,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == sizeof(read_data));
@@ -3851,7 +3851,7 @@
   asio::async_read_at(s, 0, sb,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == sizeof(read_data));
@@ -3864,7 +3864,7 @@
   asio::async_read_at(s, 1234, sb,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == sizeof(read_data));
@@ -3877,7 +3877,7 @@
   asio::async_read_at(s, 0, sb,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == sizeof(read_data));
@@ -3890,7 +3890,7 @@
   asio::async_read_at(s, 1234, sb,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == sizeof(read_data));
@@ -3901,7 +3901,7 @@
   int i = asio::async_read_at(s, 1234, sb,
       archetypes::lazy_handler());
   ASIO_CHECK(i == 42);
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
 }
@@ -3929,7 +3929,7 @@
       asio::transfer_all(),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
@@ -3941,7 +3941,7 @@
       asio::transfer_all(),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
@@ -3954,7 +3954,7 @@
       asio::transfer_all(),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
@@ -3967,7 +3967,7 @@
       asio::transfer_all(),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
@@ -3980,7 +3980,7 @@
       asio::transfer_all(),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
@@ -3993,7 +3993,7 @@
       asio::transfer_all(),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
@@ -4005,7 +4005,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
@@ -4017,7 +4017,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
@@ -4030,7 +4030,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_read_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 1));
@@ -4043,7 +4043,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_read_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 1));
@@ -4056,7 +4056,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 10));
@@ -4069,7 +4069,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 10));
@@ -4081,7 +4081,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
@@ -4093,7 +4093,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
@@ -4106,7 +4106,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 10));
@@ -4119,7 +4119,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 10));
@@ -4132,7 +4132,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 10));
@@ -4145,7 +4145,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 10));
@@ -4157,7 +4157,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
@@ -4169,7 +4169,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
@@ -4182,7 +4182,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_read_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 42));
@@ -4195,7 +4195,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_read_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 42));
@@ -4208,7 +4208,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_read_handler,
         _1, _2, 50, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 50));
@@ -4221,7 +4221,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_read_handler,
         _1, _2, 50, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 50));
@@ -4233,7 +4233,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_read_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 1));
@@ -4245,7 +4245,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_read_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 1));
@@ -4258,7 +4258,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_read_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 1));
@@ -4271,7 +4271,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_read_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 1));
@@ -4284,7 +4284,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_read_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 1));
@@ -4297,7 +4297,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_read_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 1));
@@ -4309,7 +4309,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 10));
@@ -4321,7 +4321,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 10));
@@ -4334,7 +4334,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 10));
@@ -4347,7 +4347,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 10));
@@ -4360,7 +4360,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 10));
@@ -4373,7 +4373,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 10));
@@ -4385,7 +4385,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_read_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 42));
@@ -4397,7 +4397,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_read_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 42));
@@ -4410,7 +4410,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_read_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 42));
@@ -4423,7 +4423,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_read_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 42));
@@ -4436,7 +4436,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_read_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 42));
@@ -4449,7 +4449,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_read_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 42));
@@ -4460,7 +4460,7 @@
   asio::async_read_at(s, 0, buffers, old_style_transfer_all,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
@@ -4471,7 +4471,7 @@
   asio::async_read_at(s, 1234, buffers, old_style_transfer_all,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
@@ -4483,7 +4483,7 @@
   asio::async_read_at(s, 0, buffers, old_style_transfer_all,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
@@ -4495,7 +4495,7 @@
   asio::async_read_at(s, 1234, buffers, old_style_transfer_all,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
@@ -4507,7 +4507,7 @@
   asio::async_read_at(s, 0, buffers, old_style_transfer_all,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
@@ -4519,7 +4519,7 @@
   asio::async_read_at(s, 1234, buffers, old_style_transfer_all,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
@@ -4530,7 +4530,7 @@
   asio::async_read_at(s, 0, buffers, short_transfer,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
@@ -4541,7 +4541,7 @@
   asio::async_read_at(s, 1234, buffers, short_transfer,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
@@ -4553,7 +4553,7 @@
   asio::async_read_at(s, 0, buffers, short_transfer,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
@@ -4565,7 +4565,7 @@
   asio::async_read_at(s, 1234, buffers, short_transfer,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
@@ -4577,7 +4577,7 @@
   asio::async_read_at(s, 0, buffers, short_transfer,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
@@ -4589,7 +4589,7 @@
   asio::async_read_at(s, 1234, buffers, short_transfer,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
@@ -4599,7 +4599,7 @@
   int i = asio::async_read_at(s, 1234, buffers,
       short_transfer, archetypes::lazy_handler());
   ASIO_CHECK(i == 42);
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
 }
@@ -4629,7 +4629,7 @@
       asio::transfer_all(),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
@@ -4641,7 +4641,7 @@
       asio::transfer_all(),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
@@ -4654,7 +4654,7 @@
       asio::transfer_all(),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
@@ -4667,7 +4667,7 @@
       asio::transfer_all(),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
@@ -4680,7 +4680,7 @@
       asio::transfer_all(),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
@@ -4693,7 +4693,7 @@
       asio::transfer_all(),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
@@ -4705,7 +4705,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
@@ -4717,7 +4717,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
@@ -4730,7 +4730,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_read_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 1));
@@ -4743,7 +4743,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_read_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 1));
@@ -4756,7 +4756,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 10));
@@ -4769,7 +4769,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 10));
@@ -4781,7 +4781,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
@@ -4793,7 +4793,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
@@ -4806,7 +4806,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 10));
@@ -4819,7 +4819,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 10));
@@ -4832,7 +4832,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 10));
@@ -4845,7 +4845,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 10));
@@ -4857,7 +4857,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
@@ -4869,7 +4869,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
@@ -4882,7 +4882,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_read_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 42));
@@ -4895,7 +4895,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_read_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 42));
@@ -4908,7 +4908,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_read_handler,
         _1, _2, 50, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 50));
@@ -4921,7 +4921,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_read_handler,
         _1, _2, 50, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 50));
@@ -4933,7 +4933,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_read_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 1));
@@ -4945,7 +4945,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_read_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 1));
@@ -4958,7 +4958,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_read_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 1));
@@ -4971,7 +4971,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_read_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 1));
@@ -4984,7 +4984,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_read_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 1));
@@ -4997,7 +4997,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_read_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 1));
@@ -5009,7 +5009,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 10));
@@ -5021,7 +5021,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 10));
@@ -5034,7 +5034,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 10));
@@ -5047,7 +5047,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 10));
@@ -5060,7 +5060,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 10));
@@ -5073,7 +5073,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 10));
@@ -5085,7 +5085,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_read_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 42));
@@ -5097,7 +5097,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_read_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 42));
@@ -5110,7 +5110,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_read_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 42));
@@ -5123,7 +5123,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_read_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 42));
@@ -5136,7 +5136,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_read_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 42));
@@ -5149,7 +5149,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_read_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 42));
@@ -5160,7 +5160,7 @@
   asio::async_read_at(s, 0, buffers, old_style_transfer_all,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
@@ -5171,7 +5171,7 @@
   asio::async_read_at(s, 1234, buffers, old_style_transfer_all,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
@@ -5183,7 +5183,7 @@
   asio::async_read_at(s, 0, buffers, old_style_transfer_all,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
@@ -5195,7 +5195,7 @@
   asio::async_read_at(s, 1234, buffers, old_style_transfer_all,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
@@ -5207,7 +5207,7 @@
   asio::async_read_at(s, 0, buffers, old_style_transfer_all,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
@@ -5219,7 +5219,7 @@
   asio::async_read_at(s, 1234, buffers, old_style_transfer_all,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
@@ -5230,7 +5230,7 @@
   asio::async_read_at(s, 0, buffers, short_transfer,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
@@ -5241,7 +5241,7 @@
   asio::async_read_at(s, 1234, buffers, short_transfer,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
@@ -5253,7 +5253,7 @@
   asio::async_read_at(s, 0, buffers, short_transfer,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
@@ -5265,7 +5265,7 @@
   asio::async_read_at(s, 1234, buffers, short_transfer,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
@@ -5277,7 +5277,7 @@
   asio::async_read_at(s, 0, buffers, short_transfer,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
@@ -5289,7 +5289,7 @@
   asio::async_read_at(s, 1234, buffers, short_transfer,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
@@ -5299,7 +5299,7 @@
   int i = asio::async_read_at(s, 1234, buffers,
       short_transfer, archetypes::lazy_handler());
   ASIO_CHECK(i == 42);
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
 #endif // defined(ASIO_HAS_BOOST_ARRAY)
@@ -5330,7 +5330,7 @@
       asio::transfer_all(),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
@@ -5342,7 +5342,7 @@
       asio::transfer_all(),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
@@ -5355,7 +5355,7 @@
       asio::transfer_all(),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
@@ -5368,7 +5368,7 @@
       asio::transfer_all(),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
@@ -5381,7 +5381,7 @@
       asio::transfer_all(),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
@@ -5394,7 +5394,7 @@
       asio::transfer_all(),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
@@ -5406,7 +5406,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
@@ -5418,7 +5418,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
@@ -5431,7 +5431,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_read_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 1));
@@ -5444,7 +5444,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_read_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 1));
@@ -5457,7 +5457,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 10));
@@ -5470,7 +5470,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 10));
@@ -5482,7 +5482,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
@@ -5494,7 +5494,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
@@ -5507,7 +5507,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 10));
@@ -5520,7 +5520,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 10));
@@ -5533,7 +5533,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 10));
@@ -5546,7 +5546,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 10));
@@ -5558,7 +5558,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
@@ -5570,7 +5570,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
@@ -5583,7 +5583,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_read_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 42));
@@ -5596,7 +5596,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_read_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 42));
@@ -5609,7 +5609,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_read_handler,
         _1, _2, 50, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 50));
@@ -5622,7 +5622,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_read_handler,
         _1, _2, 50, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 50));
@@ -5634,7 +5634,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_read_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 1));
@@ -5646,7 +5646,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_read_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 1));
@@ -5659,7 +5659,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_read_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 1));
@@ -5672,7 +5672,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_read_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 1));
@@ -5685,7 +5685,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_read_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 1));
@@ -5698,7 +5698,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_read_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 1));
@@ -5710,7 +5710,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 10));
@@ -5722,7 +5722,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 10));
@@ -5735,7 +5735,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 10));
@@ -5748,7 +5748,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 10));
@@ -5761,7 +5761,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 10));
@@ -5774,7 +5774,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 10));
@@ -5786,7 +5786,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_read_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 42));
@@ -5798,7 +5798,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_read_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 42));
@@ -5811,7 +5811,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_read_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 42));
@@ -5824,7 +5824,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_read_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 42));
@@ -5837,7 +5837,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_read_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 42));
@@ -5850,7 +5850,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_read_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 42));
@@ -5861,7 +5861,7 @@
   asio::async_read_at(s, 0, buffers, old_style_transfer_all,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
@@ -5872,7 +5872,7 @@
   asio::async_read_at(s, 1234, buffers, old_style_transfer_all,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
@@ -5884,7 +5884,7 @@
   asio::async_read_at(s, 0, buffers, old_style_transfer_all,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
@@ -5896,7 +5896,7 @@
   asio::async_read_at(s, 1234, buffers, old_style_transfer_all,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
@@ -5908,7 +5908,7 @@
   asio::async_read_at(s, 0, buffers, old_style_transfer_all,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
@@ -5920,7 +5920,7 @@
   asio::async_read_at(s, 1234, buffers, old_style_transfer_all,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
@@ -5931,7 +5931,7 @@
   asio::async_read_at(s, 0, buffers, short_transfer,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
@@ -5942,7 +5942,7 @@
   asio::async_read_at(s, 1234, buffers, short_transfer,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
@@ -5954,7 +5954,7 @@
   asio::async_read_at(s, 0, buffers, short_transfer,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
@@ -5966,7 +5966,7 @@
   asio::async_read_at(s, 1234, buffers, short_transfer,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
@@ -5978,7 +5978,7 @@
   asio::async_read_at(s, 0, buffers, short_transfer,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
@@ -5990,7 +5990,7 @@
   asio::async_read_at(s, 1234, buffers, short_transfer,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
@@ -6000,7 +6000,7 @@
   int i = asio::async_read_at(s, 1234, buffers,
       short_transfer, archetypes::lazy_handler());
   ASIO_CHECK(i == 42);
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
 #endif // defined(ASIO_HAS_STD_ARRAY)
@@ -6030,7 +6030,7 @@
       asio::transfer_all(),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
@@ -6042,7 +6042,7 @@
       asio::transfer_all(),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
@@ -6055,7 +6055,7 @@
       asio::transfer_all(),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
@@ -6068,7 +6068,7 @@
       asio::transfer_all(),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
@@ -6081,7 +6081,7 @@
       asio::transfer_all(),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
@@ -6094,7 +6094,7 @@
       asio::transfer_all(),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
@@ -6106,7 +6106,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
@@ -6118,7 +6118,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
@@ -6131,7 +6131,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_read_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 1));
@@ -6144,7 +6144,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_read_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 1));
@@ -6157,7 +6157,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 10));
@@ -6170,7 +6170,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 10));
@@ -6182,7 +6182,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
@@ -6194,7 +6194,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
@@ -6207,7 +6207,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 10));
@@ -6220,7 +6220,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 10));
@@ -6233,7 +6233,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 10));
@@ -6246,7 +6246,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 10));
@@ -6258,7 +6258,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
@@ -6270,7 +6270,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
@@ -6283,7 +6283,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_read_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 42));
@@ -6296,7 +6296,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_read_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 42));
@@ -6309,7 +6309,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_read_handler,
         _1, _2, 50, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 50));
@@ -6322,7 +6322,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_read_handler,
         _1, _2, 50, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 50));
@@ -6334,7 +6334,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_read_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 1));
@@ -6346,7 +6346,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_read_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 1));
@@ -6359,7 +6359,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_read_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 1));
@@ -6372,7 +6372,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_read_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 1));
@@ -6385,7 +6385,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_read_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 1));
@@ -6398,7 +6398,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_read_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 1));
@@ -6410,7 +6410,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 10));
@@ -6422,7 +6422,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 10));
@@ -6435,7 +6435,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 10));
@@ -6448,7 +6448,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 10));
@@ -6461,7 +6461,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 10));
@@ -6474,7 +6474,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 10));
@@ -6486,7 +6486,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_read_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 42));
@@ -6498,7 +6498,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_read_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 42));
@@ -6511,7 +6511,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_read_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 42));
@@ -6524,7 +6524,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_read_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 42));
@@ -6537,7 +6537,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_read_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 42));
@@ -6550,7 +6550,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_read_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 42));
@@ -6561,7 +6561,7 @@
   asio::async_read_at(s, 0, buffers, old_style_transfer_all,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
@@ -6572,7 +6572,7 @@
   asio::async_read_at(s, 1234, buffers, old_style_transfer_all,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
@@ -6584,7 +6584,7 @@
   asio::async_read_at(s, 0, buffers, old_style_transfer_all,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
@@ -6596,7 +6596,7 @@
   asio::async_read_at(s, 1234, buffers, old_style_transfer_all,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
@@ -6608,7 +6608,7 @@
   asio::async_read_at(s, 0, buffers, old_style_transfer_all,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
@@ -6620,7 +6620,7 @@
   asio::async_read_at(s, 1234, buffers, old_style_transfer_all,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
@@ -6631,7 +6631,7 @@
   asio::async_read_at(s, 0, buffers, short_transfer,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
@@ -6642,7 +6642,7 @@
   asio::async_read_at(s, 1234, buffers, short_transfer,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
@@ -6654,7 +6654,7 @@
   asio::async_read_at(s, 0, buffers, short_transfer,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
@@ -6666,7 +6666,7 @@
   asio::async_read_at(s, 1234, buffers, short_transfer,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
@@ -6678,7 +6678,7 @@
   asio::async_read_at(s, 0, buffers, short_transfer,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(read_data)));
@@ -6690,7 +6690,7 @@
   asio::async_read_at(s, 1234, buffers, short_transfer,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
@@ -6700,7 +6700,7 @@
   int i = asio::async_read_at(s, 1234, buffers,
       short_transfer, archetypes::lazy_handler());
   ASIO_CHECK(i == 42);
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(read_data)));
 }
@@ -6726,7 +6726,7 @@
       asio::transfer_all(),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == sizeof(read_data));
@@ -6739,7 +6739,7 @@
       asio::transfer_all(),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == sizeof(read_data));
@@ -6753,7 +6753,7 @@
       asio::transfer_all(),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == sizeof(read_data));
@@ -6767,7 +6767,7 @@
       asio::transfer_all(),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == sizeof(read_data));
@@ -6781,7 +6781,7 @@
       asio::transfer_all(),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == sizeof(read_data));
@@ -6795,7 +6795,7 @@
       asio::transfer_all(),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == sizeof(read_data));
@@ -6808,7 +6808,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == sizeof(read_data));
@@ -6821,7 +6821,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == sizeof(read_data));
@@ -6835,7 +6835,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_read_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == 1);
@@ -6849,7 +6849,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_read_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == 1);
@@ -6863,7 +6863,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == 10);
@@ -6877,7 +6877,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == 10);
@@ -6890,7 +6890,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == sizeof(read_data));
@@ -6903,7 +6903,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == sizeof(read_data));
@@ -6917,7 +6917,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == 10);
@@ -6931,7 +6931,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == 10);
@@ -6945,7 +6945,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == 10);
@@ -6959,7 +6959,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == 10);
@@ -6972,7 +6972,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == sizeof(read_data));
@@ -6985,7 +6985,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == sizeof(read_data));
@@ -6999,7 +6999,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_read_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == 42);
@@ -7013,7 +7013,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_read_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == 42);
@@ -7027,7 +7027,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_read_handler,
         _1, _2, 50, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == 50);
@@ -7041,7 +7041,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_read_handler,
         _1, _2, 50, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == 50);
@@ -7054,7 +7054,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_read_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == 1);
@@ -7067,7 +7067,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_read_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == 1);
@@ -7081,7 +7081,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_read_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == 1);
@@ -7095,7 +7095,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_read_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == 1);
@@ -7109,7 +7109,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_read_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == 1);
@@ -7123,7 +7123,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_read_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == 1);
@@ -7136,7 +7136,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == 10);
@@ -7149,7 +7149,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == 10);
@@ -7163,7 +7163,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == 10);
@@ -7177,7 +7177,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == 10);
@@ -7191,7 +7191,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == 10);
@@ -7205,7 +7205,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_read_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == 10);
@@ -7218,7 +7218,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_read_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == 42);
@@ -7231,7 +7231,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_read_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == 42);
@@ -7245,7 +7245,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_read_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == 42);
@@ -7259,7 +7259,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_read_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == 42);
@@ -7273,7 +7273,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_read_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == 42);
@@ -7287,7 +7287,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_read_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == 42);
@@ -7299,7 +7299,7 @@
   asio::async_read_at(s, 0, sb, old_style_transfer_all,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == sizeof(read_data));
@@ -7311,7 +7311,7 @@
   asio::async_read_at(s, 1234, sb, old_style_transfer_all,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == sizeof(read_data));
@@ -7324,7 +7324,7 @@
   asio::async_read_at(s, 0, sb, old_style_transfer_all,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == sizeof(read_data));
@@ -7337,7 +7337,7 @@
   asio::async_read_at(s, 1234, sb, old_style_transfer_all,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == sizeof(read_data));
@@ -7350,7 +7350,7 @@
   asio::async_read_at(s, 0, sb, old_style_transfer_all,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == sizeof(read_data));
@@ -7363,7 +7363,7 @@
   asio::async_read_at(s, 1234, sb, old_style_transfer_all,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == sizeof(read_data));
@@ -7375,7 +7375,7 @@
   asio::async_read_at(s, 0, sb, short_transfer,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == sizeof(read_data));
@@ -7387,7 +7387,7 @@
   asio::async_read_at(s, 1234, sb, short_transfer,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == sizeof(read_data));
@@ -7400,7 +7400,7 @@
   asio::async_read_at(s, 0, sb, short_transfer,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == sizeof(read_data));
@@ -7413,7 +7413,7 @@
   asio::async_read_at(s, 1234, sb, short_transfer,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == sizeof(read_data));
@@ -7426,7 +7426,7 @@
   asio::async_read_at(s, 0, sb, short_transfer,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == sizeof(read_data));
@@ -7439,7 +7439,7 @@
   asio::async_read_at(s, 1234, sb, short_transfer,
       bindns::bind(async_read_handler,
         _1, _2, sizeof(read_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(sb.size() == sizeof(read_data));
@@ -7450,7 +7450,7 @@
   int i = asio::async_read_at(s, 1234, sb,
       short_transfer, archetypes::lazy_handler());
   ASIO_CHECK(i == 42);
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(s.check_buffers(1234, sb.data(), sizeof(read_data)));
 }
diff --git a/asio/src/tests/unit/read_until.cpp b/asio/src/tests/unit/read_until.cpp
index f9c92f5..70a415e 100644
--- a/asio/src/tests/unit/read_until.cpp
+++ b/asio/src/tests/unit/read_until.cpp
@@ -421,7 +421,7 @@
   asio::async_read_until(s, sb1, 'Z',
       bindns::bind(async_read_handler, _1, &ec,
         _2, &length, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(!ec);
@@ -436,7 +436,7 @@
   asio::async_read_until(s, sb1, 'Z',
       bindns::bind(async_read_handler, _1, &ec,
         _2, &length, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(!ec);
@@ -451,7 +451,7 @@
   asio::async_read_until(s, sb1, 'Z',
       bindns::bind(async_read_handler, _1, &ec,
         _2, &length, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(!ec);
@@ -465,7 +465,7 @@
   asio::async_read_until(s, sb2, 'Z',
       bindns::bind(async_read_handler, _1, &ec,
         _2, &length, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(ec == asio::error::not_found);
@@ -480,7 +480,7 @@
   asio::async_read_until(s, sb2, 'Z',
       bindns::bind(async_read_handler, _1, &ec,
         _2, &length, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(ec == asio::error::not_found);
@@ -495,7 +495,7 @@
   asio::async_read_until(s, sb2, 'Z',
       bindns::bind(async_read_handler, _1, &ec,
         _2, &length, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(ec == asio::error::not_found);
@@ -509,7 +509,7 @@
   asio::async_read_until(s, sb2, 'Y',
       bindns::bind(async_read_handler, _1, &ec,
         _2, &length, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(!ec);
@@ -524,7 +524,7 @@
   asio::async_read_until(s, sb2, 'Y',
       bindns::bind(async_read_handler, _1, &ec,
         _2, &length, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(!ec);
@@ -539,7 +539,7 @@
   asio::async_read_until(s, sb2, 'Y',
       bindns::bind(async_read_handler, _1, &ec,
         _2, &length, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(!ec);
@@ -550,7 +550,7 @@
   int i = asio::async_read_until(s, sb2, 'Y',
       archetypes::lazy_handler());
   ASIO_CHECK(i == 42);
-  ios.reset();
+  ios.restart();
   ios.run();
 }
 
@@ -580,7 +580,7 @@
   asio::async_read_until(s, sb1, "XYZ",
       bindns::bind(async_read_handler, _1, &ec,
         _2, &length, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(!ec);
@@ -595,7 +595,7 @@
   asio::async_read_until(s, sb1, "XYZ",
       bindns::bind(async_read_handler, _1, &ec,
         _2, &length, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(!ec);
@@ -610,7 +610,7 @@
   asio::async_read_until(s, sb1, "XYZ",
       bindns::bind(async_read_handler, _1, &ec,
         _2, &length, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(!ec);
@@ -624,7 +624,7 @@
   asio::async_read_until(s, sb2, "XYZ",
       bindns::bind(async_read_handler, _1, &ec,
         _2, &length, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(ec == asio::error::not_found);
@@ -639,7 +639,7 @@
   asio::async_read_until(s, sb2, "XYZ",
       bindns::bind(async_read_handler, _1, &ec,
         _2, &length, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(ec == asio::error::not_found);
@@ -654,7 +654,7 @@
   asio::async_read_until(s, sb2, "XYZ",
       bindns::bind(async_read_handler, _1, &ec,
         _2, &length, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(ec == asio::error::not_found);
@@ -668,7 +668,7 @@
   asio::async_read_until(s, sb2, "WXY",
       bindns::bind(async_read_handler, _1, &ec,
         _2, &length, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(!ec);
@@ -683,7 +683,7 @@
   asio::async_read_until(s, sb2, "WXY",
       bindns::bind(async_read_handler, _1, &ec,
         _2, &length, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(!ec);
@@ -698,7 +698,7 @@
   asio::async_read_until(s, sb2, "WXY",
       bindns::bind(async_read_handler, _1, &ec,
         _2, &length, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(!ec);
@@ -709,7 +709,7 @@
   int i = asio::async_read_until(s, sb2, "WXY",
       archetypes::lazy_handler());
   ASIO_CHECK(i == 42);
-  ios.reset();
+  ios.restart();
   ios.run();
 }
 
@@ -739,7 +739,7 @@
   asio::async_read_until(s, sb1, match_char('Z'),
       bindns::bind(async_read_handler, _1, &ec,
         _2, &length, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(!ec);
@@ -754,7 +754,7 @@
   asio::async_read_until(s, sb1, match_char('Z'),
       bindns::bind(async_read_handler, _1, &ec,
         _2, &length, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(!ec);
@@ -769,7 +769,7 @@
   asio::async_read_until(s, sb1, match_char('Z'),
       bindns::bind(async_read_handler, _1, &ec,
         _2, &length, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(!ec);
@@ -783,7 +783,7 @@
   asio::async_read_until(s, sb2, match_char('Z'),
       bindns::bind(async_read_handler, _1, &ec,
         _2, &length, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(ec == asio::error::not_found);
@@ -798,7 +798,7 @@
   asio::async_read_until(s, sb2, match_char('Z'),
       bindns::bind(async_read_handler, _1, &ec,
         _2, &length, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(ec == asio::error::not_found);
@@ -813,7 +813,7 @@
   asio::async_read_until(s, sb2, match_char('Z'),
       bindns::bind(async_read_handler, _1, &ec,
         _2, &length, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(ec == asio::error::not_found);
@@ -827,7 +827,7 @@
   asio::async_read_until(s, sb2, match_char('Y'),
       bindns::bind(async_read_handler, _1, &ec,
         _2, &length, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(!ec);
@@ -842,7 +842,7 @@
   asio::async_read_until(s, sb2, match_char('Y'),
       bindns::bind(async_read_handler, _1, &ec,
         _2, &length, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(!ec);
@@ -857,7 +857,7 @@
   asio::async_read_until(s, sb2, match_char('Y'),
       bindns::bind(async_read_handler, _1, &ec,
         _2, &length, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(!ec);
@@ -868,7 +868,7 @@
   int i = asio::async_read_until(s, sb2, match_char('Y'),
       archetypes::lazy_handler());
   ASIO_CHECK(i == 42);
-  ios.reset();
+  ios.restart();
   ios.run();
 }
 
diff --git a/asio/src/tests/unit/strand.cpp b/asio/src/tests/unit/strand.cpp
index eed3345..93fd02e 100644
--- a/asio/src/tests/unit/strand.cpp
+++ b/asio/src/tests/unit/strand.cpp
@@ -130,7 +130,7 @@
   ASIO_CHECK(count == 1);
 
   count = 0;
-  ios.reset();
+  ios.restart();
   s.post(bindns::bind(increment_with_lock, &s, &count));
 
   // No handlers can be called until run() is called.
@@ -142,7 +142,7 @@
   ASIO_CHECK(count == 1);
 
   count = 0;
-  ios.reset();
+  ios.restart();
   ios.post(bindns::bind(start_sleep_increments, &ios, &s, &count));
   thread thread1(bindns::bind(io_service_run, &ios));
   thread thread2(bindns::bind(io_service_run, &ios));
@@ -166,7 +166,7 @@
 
   count = 0;
   int exception_count = 0;
-  ios.reset();
+  ios.restart();
   s.post(throw_exception);
   s.post(bindns::bind(increment, &count));
   s.post(bindns::bind(increment, &count));
@@ -195,7 +195,7 @@
   ASIO_CHECK(exception_count == 2);
 
   count = 0;
-  ios.reset();
+  ios.restart();
 
   // Check for clean shutdown when handlers posted through an orphaned strand
   // are abandoned.
diff --git a/asio/src/tests/unit/system_timer.cpp b/asio/src/tests/unit/system_timer.cpp
index c624ea7..1d392c5 100644
--- a/asio/src/tests/unit/system_timer.cpp
+++ b/asio/src/tests/unit/system_timer.cpp
@@ -163,7 +163,7 @@
   // No completions can be delivered until run() is called.
   ASIO_CHECK(count == 3);
 
-  ios.reset();
+  ios.restart();
   ios.run();
 
   // The run() call will not return until all operations have finished, and
@@ -184,7 +184,7 @@
   // No completions can be delivered until run() is called.
   ASIO_CHECK(count == 0);
 
-  ios.reset();
+  ios.restart();
   ios.run();
 
   // The timer should have been cancelled, so count should not have changed.
@@ -199,7 +199,7 @@
   // wait should run to completion and increment the counter.
   t5.async_wait(bindns::bind(increment_if_not_cancelled, &count, _1));
 
-  ios.reset();
+  ios.restart();
   ios.run();
 
   // The timer should not have been cancelled, so count should have changed.
@@ -221,7 +221,7 @@
   asio::system_timer t8(ios, seconds(1));
   t8.async_wait(bindns::bind(cancel_one_timer, &t7));
 
-  ios.reset();
+  ios.restart();
   ios.run();
 
   // One of the waits should not have been cancelled, so count should have
diff --git a/asio/src/tests/unit/write.cpp b/asio/src/tests/unit/write.cpp
index f4280da..1969019 100644
--- a/asio/src/tests/unit/write.cpp
+++ b/asio/src/tests/unit/write.cpp
@@ -1620,7 +1620,7 @@
   asio::async_write(s, buffers,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -1631,7 +1631,7 @@
   asio::async_write(s, buffers,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -1642,7 +1642,7 @@
   asio::async_write(s, buffers,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -1650,7 +1650,7 @@
   s.reset();
   int i = asio::async_write(s, buffers, archetypes::lazy_handler());
   ASIO_CHECK(i == 42);
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
 }
@@ -1675,7 +1675,7 @@
   asio::async_write(s, buffers,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(mutable_write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
@@ -1686,7 +1686,7 @@
   asio::async_write(s, buffers,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(mutable_write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
@@ -1697,7 +1697,7 @@
   asio::async_write(s, buffers,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(mutable_write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
@@ -1705,7 +1705,7 @@
   s.reset();
   int i = asio::async_write(s, buffers, archetypes::lazy_handler());
   ASIO_CHECK(i == 42);
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
 }
@@ -1732,7 +1732,7 @@
   asio::async_write(s, buffers,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -1743,7 +1743,7 @@
   asio::async_write(s, buffers,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -1754,7 +1754,7 @@
   asio::async_write(s, buffers,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -1762,7 +1762,7 @@
   s.reset();
   int i = asio::async_write(s, buffers, archetypes::lazy_handler());
   ASIO_CHECK(i == 42);
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
 #endif // defined(ASIO_HAS_BOOST_ARRAY)
@@ -1790,7 +1790,7 @@
   asio::async_write(s, buffers,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -1801,7 +1801,7 @@
   asio::async_write(s, buffers,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -1812,7 +1812,7 @@
   asio::async_write(s, buffers,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -1820,7 +1820,7 @@
   s.reset();
   int i = asio::async_write(s, buffers, archetypes::lazy_handler());
   ASIO_CHECK(i == 42);
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
 #endif // defined(ASIO_HAS_STD_ARRAY)
@@ -1847,7 +1847,7 @@
   asio::async_write(s, buffers,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -1858,7 +1858,7 @@
   asio::async_write(s, buffers,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -1869,7 +1869,7 @@
   asio::async_write(s, buffers,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -1877,7 +1877,7 @@
   s.reset();
   int i = asio::async_write(s, buffers, archetypes::lazy_handler());
   ASIO_CHECK(i == 42);
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
 }
@@ -1905,7 +1905,7 @@
   asio::async_write(s, sb,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -1918,7 +1918,7 @@
   asio::async_write(s, sb,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -1931,7 +1931,7 @@
   asio::async_write(s, sb,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -1941,7 +1941,7 @@
   sb.sputn(write_data, sizeof(write_data));
   int i = asio::async_write(s, sb, archetypes::lazy_handler());
   ASIO_CHECK(i == 42);
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
 }
@@ -1966,7 +1966,7 @@
   asio::async_write(s, buffers, asio::transfer_all(),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -1977,7 +1977,7 @@
   asio::async_write(s, buffers, asio::transfer_all(),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -1988,7 +1988,7 @@
   asio::async_write(s, buffers, asio::transfer_all(),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -1998,7 +1998,7 @@
   asio::async_write(s, buffers, asio::transfer_at_least(1),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -2009,7 +2009,7 @@
   asio::async_write(s, buffers, asio::transfer_at_least(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 1));
@@ -2020,7 +2020,7 @@
   asio::async_write(s, buffers, asio::transfer_at_least(1),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 10));
@@ -2030,7 +2030,7 @@
   asio::async_write(s, buffers, asio::transfer_at_least(10),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -2041,7 +2041,7 @@
   asio::async_write(s, buffers, asio::transfer_at_least(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 10));
@@ -2052,7 +2052,7 @@
   asio::async_write(s, buffers, asio::transfer_at_least(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 10));
@@ -2062,7 +2062,7 @@
   asio::async_write(s, buffers, asio::transfer_at_least(42),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -2073,7 +2073,7 @@
   asio::async_write(s, buffers, asio::transfer_at_least(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 42));
@@ -2084,7 +2084,7 @@
   asio::async_write(s, buffers, asio::transfer_at_least(42),
       bindns::bind(async_write_handler,
         _1, _2, 50, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 50));
@@ -2094,7 +2094,7 @@
   asio::async_write(s, buffers, asio::transfer_exactly(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 1));
@@ -2105,7 +2105,7 @@
   asio::async_write(s, buffers, asio::transfer_exactly(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 1));
@@ -2116,7 +2116,7 @@
   asio::async_write(s, buffers, asio::transfer_exactly(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 1));
@@ -2126,7 +2126,7 @@
   asio::async_write(s, buffers, asio::transfer_exactly(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 10));
@@ -2137,7 +2137,7 @@
   asio::async_write(s, buffers, asio::transfer_exactly(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 10));
@@ -2148,7 +2148,7 @@
   asio::async_write(s, buffers, asio::transfer_exactly(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 10));
@@ -2158,7 +2158,7 @@
   asio::async_write(s, buffers, asio::transfer_exactly(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 42));
@@ -2169,7 +2169,7 @@
   asio::async_write(s, buffers, asio::transfer_exactly(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 42));
@@ -2180,7 +2180,7 @@
   asio::async_write(s, buffers, asio::transfer_exactly(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 42));
@@ -2190,7 +2190,7 @@
   asio::async_write(s, buffers, old_style_transfer_all,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -2201,7 +2201,7 @@
   asio::async_write(s, buffers, old_style_transfer_all,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -2212,7 +2212,7 @@
   asio::async_write(s, buffers, old_style_transfer_all,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -2222,7 +2222,7 @@
   asio::async_write(s, buffers, short_transfer,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -2233,7 +2233,7 @@
   asio::async_write(s, buffers, short_transfer,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -2244,7 +2244,7 @@
   asio::async_write(s, buffers, short_transfer,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -2253,7 +2253,7 @@
   int i = asio::async_write(s, buffers, short_transfer,
       archetypes::lazy_handler());
   ASIO_CHECK(i == 42);
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
 }
@@ -2278,7 +2278,7 @@
   asio::async_write(s, buffers, asio::transfer_all(),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(mutable_write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
@@ -2289,7 +2289,7 @@
   asio::async_write(s, buffers, asio::transfer_all(),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(mutable_write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
@@ -2300,7 +2300,7 @@
   asio::async_write(s, buffers, asio::transfer_all(),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(mutable_write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
@@ -2310,7 +2310,7 @@
   asio::async_write(s, buffers, asio::transfer_at_least(1),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(mutable_write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
@@ -2321,7 +2321,7 @@
   asio::async_write(s, buffers, asio::transfer_at_least(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 1));
@@ -2332,7 +2332,7 @@
   asio::async_write(s, buffers, asio::transfer_at_least(1),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 10));
@@ -2342,7 +2342,7 @@
   asio::async_write(s, buffers, asio::transfer_at_least(10),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(mutable_write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
@@ -2353,7 +2353,7 @@
   asio::async_write(s, buffers, asio::transfer_at_least(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 10));
@@ -2364,7 +2364,7 @@
   asio::async_write(s, buffers, asio::transfer_at_least(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 10));
@@ -2374,7 +2374,7 @@
   asio::async_write(s, buffers, asio::transfer_at_least(42),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(mutable_write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
@@ -2385,7 +2385,7 @@
   asio::async_write(s, buffers, asio::transfer_at_least(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 42));
@@ -2396,7 +2396,7 @@
   asio::async_write(s, buffers, asio::transfer_at_least(42),
       bindns::bind(async_write_handler,
         _1, _2, 50, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 50));
@@ -2406,7 +2406,7 @@
   asio::async_write(s, buffers, asio::transfer_exactly(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 1));
@@ -2417,7 +2417,7 @@
   asio::async_write(s, buffers, asio::transfer_exactly(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 1));
@@ -2428,7 +2428,7 @@
   asio::async_write(s, buffers, asio::transfer_exactly(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 1));
@@ -2438,7 +2438,7 @@
   asio::async_write(s, buffers, asio::transfer_exactly(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 10));
@@ -2449,7 +2449,7 @@
   asio::async_write(s, buffers, asio::transfer_exactly(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 10));
@@ -2460,7 +2460,7 @@
   asio::async_write(s, buffers, asio::transfer_exactly(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 10));
@@ -2470,7 +2470,7 @@
   asio::async_write(s, buffers, asio::transfer_exactly(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 42));
@@ -2481,7 +2481,7 @@
   asio::async_write(s, buffers, asio::transfer_exactly(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 42));
@@ -2492,7 +2492,7 @@
   asio::async_write(s, buffers, asio::transfer_exactly(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 42));
@@ -2502,7 +2502,7 @@
   asio::async_write(s, buffers, old_style_transfer_all,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(mutable_write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
@@ -2513,7 +2513,7 @@
   asio::async_write(s, buffers, old_style_transfer_all,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(mutable_write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
@@ -2524,7 +2524,7 @@
   asio::async_write(s, buffers, old_style_transfer_all,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(mutable_write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
@@ -2534,7 +2534,7 @@
   asio::async_write(s, buffers, short_transfer,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(mutable_write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
@@ -2545,7 +2545,7 @@
   asio::async_write(s, buffers, short_transfer,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(mutable_write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
@@ -2556,7 +2556,7 @@
   asio::async_write(s, buffers, short_transfer,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(mutable_write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(mutable_write_data)));
@@ -2565,7 +2565,7 @@
   int i = asio::async_write(s, buffers, short_transfer,
       archetypes::lazy_handler());
   ASIO_CHECK(i == 42);
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
 }
@@ -2592,7 +2592,7 @@
   asio::async_write(s, buffers, asio::transfer_all(),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -2603,7 +2603,7 @@
   asio::async_write(s, buffers, asio::transfer_all(),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -2614,7 +2614,7 @@
   asio::async_write(s, buffers, asio::transfer_all(),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -2624,7 +2624,7 @@
   asio::async_write(s, buffers, asio::transfer_at_least(1),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -2635,7 +2635,7 @@
   asio::async_write(s, buffers, asio::transfer_at_least(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 1));
@@ -2646,7 +2646,7 @@
   asio::async_write(s, buffers, asio::transfer_at_least(1),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 10));
@@ -2656,7 +2656,7 @@
   asio::async_write(s, buffers, asio::transfer_at_least(10),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -2667,7 +2667,7 @@
   asio::async_write(s, buffers, asio::transfer_at_least(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 10));
@@ -2678,7 +2678,7 @@
   asio::async_write(s, buffers, asio::transfer_at_least(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 10));
@@ -2688,7 +2688,7 @@
   asio::async_write(s, buffers, asio::transfer_at_least(42),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -2699,7 +2699,7 @@
   asio::async_write(s, buffers, asio::transfer_at_least(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 42));
@@ -2710,7 +2710,7 @@
   asio::async_write(s, buffers, asio::transfer_at_least(42),
       bindns::bind(async_write_handler,
         _1, _2, 50, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 50));
@@ -2720,7 +2720,7 @@
   asio::async_write(s, buffers, asio::transfer_exactly(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 1));
@@ -2731,7 +2731,7 @@
   asio::async_write(s, buffers, asio::transfer_exactly(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 1));
@@ -2742,7 +2742,7 @@
   asio::async_write(s, buffers, asio::transfer_exactly(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 1));
@@ -2752,7 +2752,7 @@
   asio::async_write(s, buffers, asio::transfer_exactly(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 10));
@@ -2763,7 +2763,7 @@
   asio::async_write(s, buffers, asio::transfer_exactly(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 10));
@@ -2774,7 +2774,7 @@
   asio::async_write(s, buffers, asio::transfer_exactly(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 10));
@@ -2784,7 +2784,7 @@
   asio::async_write(s, buffers, asio::transfer_exactly(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 42));
@@ -2795,7 +2795,7 @@
   asio::async_write(s, buffers, asio::transfer_exactly(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 42));
@@ -2806,7 +2806,7 @@
   asio::async_write(s, buffers, asio::transfer_exactly(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 42));
@@ -2816,7 +2816,7 @@
   asio::async_write(s, buffers, old_style_transfer_all,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -2827,7 +2827,7 @@
   asio::async_write(s, buffers, old_style_transfer_all,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -2838,7 +2838,7 @@
   asio::async_write(s, buffers, old_style_transfer_all,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -2848,7 +2848,7 @@
   asio::async_write(s, buffers, short_transfer,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -2859,7 +2859,7 @@
   asio::async_write(s, buffers, short_transfer,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -2870,7 +2870,7 @@
   asio::async_write(s, buffers, short_transfer,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -2879,7 +2879,7 @@
   int i = asio::async_write(s, buffers, short_transfer,
       archetypes::lazy_handler());
   ASIO_CHECK(i == 42);
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
 #endif // defined(ASIO_HAS_BOOST_ARRAY)
@@ -2907,7 +2907,7 @@
   asio::async_write(s, buffers, asio::transfer_all(),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -2918,7 +2918,7 @@
   asio::async_write(s, buffers, asio::transfer_all(),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -2929,7 +2929,7 @@
   asio::async_write(s, buffers, asio::transfer_all(),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -2939,7 +2939,7 @@
   asio::async_write(s, buffers, asio::transfer_at_least(1),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -2950,7 +2950,7 @@
   asio::async_write(s, buffers, asio::transfer_at_least(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 1));
@@ -2961,7 +2961,7 @@
   asio::async_write(s, buffers, asio::transfer_at_least(1),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 10));
@@ -2971,7 +2971,7 @@
   asio::async_write(s, buffers, asio::transfer_at_least(10),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -2982,7 +2982,7 @@
   asio::async_write(s, buffers, asio::transfer_at_least(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 10));
@@ -2993,7 +2993,7 @@
   asio::async_write(s, buffers, asio::transfer_at_least(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 10));
@@ -3003,7 +3003,7 @@
   asio::async_write(s, buffers, asio::transfer_at_least(42),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -3014,7 +3014,7 @@
   asio::async_write(s, buffers, asio::transfer_at_least(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 42));
@@ -3025,7 +3025,7 @@
   asio::async_write(s, buffers, asio::transfer_at_least(42),
       bindns::bind(async_write_handler,
         _1, _2, 50, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 50));
@@ -3035,7 +3035,7 @@
   asio::async_write(s, buffers, asio::transfer_exactly(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 1));
@@ -3046,7 +3046,7 @@
   asio::async_write(s, buffers, asio::transfer_exactly(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 1));
@@ -3057,7 +3057,7 @@
   asio::async_write(s, buffers, asio::transfer_exactly(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 1));
@@ -3067,7 +3067,7 @@
   asio::async_write(s, buffers, asio::transfer_exactly(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 10));
@@ -3078,7 +3078,7 @@
   asio::async_write(s, buffers, asio::transfer_exactly(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 10));
@@ -3089,7 +3089,7 @@
   asio::async_write(s, buffers, asio::transfer_exactly(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 10));
@@ -3099,7 +3099,7 @@
   asio::async_write(s, buffers, asio::transfer_exactly(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 42));
@@ -3110,7 +3110,7 @@
   asio::async_write(s, buffers, asio::transfer_exactly(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 42));
@@ -3121,7 +3121,7 @@
   asio::async_write(s, buffers, asio::transfer_exactly(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 42));
@@ -3131,7 +3131,7 @@
   asio::async_write(s, buffers, old_style_transfer_all,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -3142,7 +3142,7 @@
   asio::async_write(s, buffers, old_style_transfer_all,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -3153,7 +3153,7 @@
   asio::async_write(s, buffers, old_style_transfer_all,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -3163,7 +3163,7 @@
   asio::async_write(s, buffers, short_transfer,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -3174,7 +3174,7 @@
   asio::async_write(s, buffers, short_transfer,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -3185,7 +3185,7 @@
   asio::async_write(s, buffers, short_transfer,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -3194,7 +3194,7 @@
   int i = asio::async_write(s, buffers, short_transfer,
       archetypes::lazy_handler());
   ASIO_CHECK(i == 42);
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
 #endif // defined(ASIO_HAS_STD_ARRAY)
@@ -3221,7 +3221,7 @@
   asio::async_write(s, buffers, asio::transfer_all(),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -3232,7 +3232,7 @@
   asio::async_write(s, buffers, asio::transfer_all(),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -3243,7 +3243,7 @@
   asio::async_write(s, buffers, asio::transfer_all(),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -3253,7 +3253,7 @@
   asio::async_write(s, buffers, asio::transfer_at_least(1),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -3264,7 +3264,7 @@
   asio::async_write(s, buffers, asio::transfer_at_least(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 1));
@@ -3275,7 +3275,7 @@
   asio::async_write(s, buffers, asio::transfer_at_least(1),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 10));
@@ -3285,7 +3285,7 @@
   asio::async_write(s, buffers, asio::transfer_at_least(10),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -3296,7 +3296,7 @@
   asio::async_write(s, buffers, asio::transfer_at_least(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 10));
@@ -3307,7 +3307,7 @@
   asio::async_write(s, buffers, asio::transfer_at_least(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 10));
@@ -3317,7 +3317,7 @@
   asio::async_write(s, buffers, asio::transfer_at_least(42),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -3328,7 +3328,7 @@
   asio::async_write(s, buffers, asio::transfer_at_least(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 42));
@@ -3339,7 +3339,7 @@
   asio::async_write(s, buffers, asio::transfer_at_least(42),
       bindns::bind(async_write_handler,
         _1, _2, 50, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 50));
@@ -3349,7 +3349,7 @@
   asio::async_write(s, buffers, asio::transfer_exactly(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 1));
@@ -3360,7 +3360,7 @@
   asio::async_write(s, buffers, asio::transfer_exactly(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 1));
@@ -3371,7 +3371,7 @@
   asio::async_write(s, buffers, asio::transfer_exactly(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 1));
@@ -3381,7 +3381,7 @@
   asio::async_write(s, buffers, asio::transfer_exactly(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 10));
@@ -3392,7 +3392,7 @@
   asio::async_write(s, buffers, asio::transfer_exactly(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 10));
@@ -3403,7 +3403,7 @@
   asio::async_write(s, buffers, asio::transfer_exactly(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 10));
@@ -3413,7 +3413,7 @@
   asio::async_write(s, buffers, asio::transfer_exactly(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 42));
@@ -3424,7 +3424,7 @@
   asio::async_write(s, buffers, asio::transfer_exactly(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 42));
@@ -3435,7 +3435,7 @@
   asio::async_write(s, buffers, asio::transfer_exactly(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 42));
@@ -3445,7 +3445,7 @@
   asio::async_write(s, buffers, old_style_transfer_all,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -3456,7 +3456,7 @@
   asio::async_write(s, buffers, old_style_transfer_all,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -3467,7 +3467,7 @@
   asio::async_write(s, buffers, old_style_transfer_all,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -3477,7 +3477,7 @@
   asio::async_write(s, buffers, short_transfer,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -3488,7 +3488,7 @@
   asio::async_write(s, buffers, short_transfer,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -3499,7 +3499,7 @@
   asio::async_write(s, buffers, short_transfer,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -3508,7 +3508,7 @@
   int i = asio::async_write(s, buffers, short_transfer,
       archetypes::lazy_handler());
   ASIO_CHECK(i == 42);
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
 }
@@ -3536,7 +3536,7 @@
   asio::async_write(s, sb, asio::transfer_all(),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -3549,7 +3549,7 @@
   asio::async_write(s, sb, asio::transfer_all(),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -3562,7 +3562,7 @@
   asio::async_write(s, sb, asio::transfer_all(),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -3574,7 +3574,7 @@
   asio::async_write(s, sb, asio::transfer_at_least(1),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -3587,7 +3587,7 @@
   asio::async_write(s, sb, asio::transfer_at_least(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 1));
@@ -3600,7 +3600,7 @@
   asio::async_write(s, sb, asio::transfer_at_least(1),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 10));
@@ -3612,7 +3612,7 @@
   asio::async_write(s, sb, asio::transfer_at_least(10),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -3625,7 +3625,7 @@
   asio::async_write(s, sb, asio::transfer_at_least(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 10));
@@ -3638,7 +3638,7 @@
   asio::async_write(s, sb, asio::transfer_at_least(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 10));
@@ -3650,7 +3650,7 @@
   asio::async_write(s, sb, asio::transfer_at_least(42),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -3663,7 +3663,7 @@
   asio::async_write(s, sb, asio::transfer_at_least(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 42));
@@ -3676,7 +3676,7 @@
   asio::async_write(s, sb, asio::transfer_at_least(42),
       bindns::bind(async_write_handler,
         _1, _2, 50, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 50));
@@ -3688,7 +3688,7 @@
   asio::async_write(s, sb, asio::transfer_exactly(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 1));
@@ -3701,7 +3701,7 @@
   asio::async_write(s, sb, asio::transfer_exactly(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 1));
@@ -3714,7 +3714,7 @@
   asio::async_write(s, sb, asio::transfer_exactly(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 1));
@@ -3726,7 +3726,7 @@
   asio::async_write(s, sb, asio::transfer_exactly(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 10));
@@ -3739,7 +3739,7 @@
   asio::async_write(s, sb, asio::transfer_exactly(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 10));
@@ -3752,7 +3752,7 @@
   asio::async_write(s, sb, asio::transfer_exactly(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 10));
@@ -3764,7 +3764,7 @@
   asio::async_write(s, sb, asio::transfer_exactly(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 42));
@@ -3777,7 +3777,7 @@
   asio::async_write(s, sb, asio::transfer_exactly(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 42));
@@ -3790,7 +3790,7 @@
   asio::async_write(s, sb, asio::transfer_exactly(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, 42));
@@ -3802,7 +3802,7 @@
   asio::async_write(s, sb, old_style_transfer_all,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -3815,7 +3815,7 @@
   asio::async_write(s, sb, old_style_transfer_all,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -3828,7 +3828,7 @@
   asio::async_write(s, sb, old_style_transfer_all,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -3840,7 +3840,7 @@
   asio::async_write(s, sb, short_transfer,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -3853,7 +3853,7 @@
   asio::async_write(s, sb, short_transfer,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -3866,7 +3866,7 @@
   asio::async_write(s, sb, short_transfer,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
@@ -3877,7 +3877,7 @@
   int i = asio::async_write(s, sb, short_transfer,
       archetypes::lazy_handler());
   ASIO_CHECK(i == 42);
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(s.check_buffers(buffers, sizeof(write_data)));
 }
diff --git a/asio/src/tests/unit/write_at.cpp b/asio/src/tests/unit/write_at.cpp
index 755e4fb..6ee1ea1 100644
--- a/asio/src/tests/unit/write_at.cpp
+++ b/asio/src/tests/unit/write_at.cpp
@@ -2946,7 +2946,7 @@
   asio::async_write_at(s, 0, buffers,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -2956,7 +2956,7 @@
   asio::async_write_at(s, 1234, buffers,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -2967,7 +2967,7 @@
   asio::async_write_at(s, 0, buffers,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -2978,7 +2978,7 @@
   asio::async_write_at(s, 1234, buffers,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -2989,7 +2989,7 @@
   asio::async_write_at(s, 0, buffers,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -3000,7 +3000,7 @@
   asio::async_write_at(s, 1234, buffers,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -3011,7 +3011,7 @@
   asio::async_write_at(s, 0, buffers,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -3020,7 +3020,7 @@
   int i = asio::async_write_at(s, 0, buffers,
       archetypes::lazy_handler());
   ASIO_CHECK(i == 42);
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
 }
@@ -3045,7 +3045,7 @@
   asio::async_write_at(s, 0, buffers,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(mutable_write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
@@ -3055,7 +3055,7 @@
   asio::async_write_at(s, 1234, buffers,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(mutable_write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
@@ -3066,7 +3066,7 @@
   asio::async_write_at(s, 0, buffers,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(mutable_write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
@@ -3077,7 +3077,7 @@
   asio::async_write_at(s, 1234, buffers,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(mutable_write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
@@ -3088,7 +3088,7 @@
   asio::async_write_at(s, 0, buffers,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(mutable_write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
@@ -3099,7 +3099,7 @@
   asio::async_write_at(s, 1234, buffers,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(mutable_write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
@@ -3110,7 +3110,7 @@
   asio::async_write_at(s, 0, buffers,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(mutable_write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
@@ -3119,7 +3119,7 @@
   int i = asio::async_write_at(s, 0, buffers,
       archetypes::lazy_handler());
   ASIO_CHECK(i == 42);
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
 }
@@ -3146,7 +3146,7 @@
   asio::async_write_at(s, 0, buffers,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -3156,7 +3156,7 @@
   asio::async_write_at(s, 1234, buffers,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -3167,7 +3167,7 @@
   asio::async_write_at(s, 0, buffers,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -3178,7 +3178,7 @@
   asio::async_write_at(s, 1234, buffers,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -3189,7 +3189,7 @@
   asio::async_write_at(s, 0, buffers,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -3200,7 +3200,7 @@
   asio::async_write_at(s, 1234, buffers,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -3211,7 +3211,7 @@
   asio::async_write_at(s, 0, buffers,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -3220,7 +3220,7 @@
   int i = asio::async_write_at(s, 0, buffers,
       archetypes::lazy_handler());
   ASIO_CHECK(i == 42);
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
 #endif // defined(ASIO_HAS_BOOST_ARRAY)
@@ -3248,7 +3248,7 @@
   asio::async_write_at(s, 0, buffers,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -3258,7 +3258,7 @@
   asio::async_write_at(s, 1234, buffers,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -3269,7 +3269,7 @@
   asio::async_write_at(s, 0, buffers,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -3280,7 +3280,7 @@
   asio::async_write_at(s, 1234, buffers,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -3291,7 +3291,7 @@
   asio::async_write_at(s, 0, buffers,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -3302,7 +3302,7 @@
   asio::async_write_at(s, 1234, buffers,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -3313,7 +3313,7 @@
   asio::async_write_at(s, 0, buffers,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -3322,7 +3322,7 @@
   int i = asio::async_write_at(s, 0, buffers,
       archetypes::lazy_handler());
   ASIO_CHECK(i == 42);
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
 #endif // defined(ASIO_HAS_STD_ARRAY)
@@ -3349,7 +3349,7 @@
   asio::async_write_at(s, 0, buffers,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -3359,7 +3359,7 @@
   asio::async_write_at(s, 1234, buffers,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -3370,7 +3370,7 @@
   asio::async_write_at(s, 0, buffers,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -3381,7 +3381,7 @@
   asio::async_write_at(s, 1234, buffers,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -3392,7 +3392,7 @@
   asio::async_write_at(s, 0, buffers,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -3403,7 +3403,7 @@
   asio::async_write_at(s, 1234, buffers,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -3414,7 +3414,7 @@
   asio::async_write_at(s, 0, buffers,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -3423,7 +3423,7 @@
   int i = asio::async_write_at(s, 0, buffers,
       archetypes::lazy_handler());
   ASIO_CHECK(i == 42);
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
 }
@@ -3451,7 +3451,7 @@
   asio::async_write_at(s, 0, sb,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -3463,7 +3463,7 @@
   asio::async_write_at(s, 1234, sb,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -3476,7 +3476,7 @@
   asio::async_write_at(s, 0, sb,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -3489,7 +3489,7 @@
   asio::async_write_at(s, 1234, sb,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -3502,7 +3502,7 @@
   asio::async_write_at(s, 0, sb,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -3515,7 +3515,7 @@
   asio::async_write_at(s, 1234, sb,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -3528,7 +3528,7 @@
   asio::async_write_at(s, 0, sb,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -3539,7 +3539,7 @@
   int i = asio::async_write_at(s, 0, sb,
       archetypes::lazy_handler());
   ASIO_CHECK(i == 42);
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
 }
@@ -3565,7 +3565,7 @@
       asio::transfer_all(),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -3576,7 +3576,7 @@
       asio::transfer_all(),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -3588,7 +3588,7 @@
       asio::transfer_all(),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -3600,7 +3600,7 @@
       asio::transfer_all(),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -3612,7 +3612,7 @@
       asio::transfer_all(),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -3624,7 +3624,7 @@
       asio::transfer_all(),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -3635,7 +3635,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -3646,7 +3646,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -3658,7 +3658,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 1));
@@ -3670,7 +3670,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 1));
@@ -3682,7 +3682,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 10));
@@ -3694,7 +3694,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 10));
@@ -3705,7 +3705,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -3716,7 +3716,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -3728,7 +3728,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 10));
@@ -3740,7 +3740,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 10));
@@ -3752,7 +3752,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 10));
@@ -3764,7 +3764,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 10));
@@ -3775,7 +3775,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -3786,7 +3786,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -3798,7 +3798,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 42));
@@ -3810,7 +3810,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 42));
@@ -3822,7 +3822,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_write_handler,
         _1, _2, 50, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 50));
@@ -3834,7 +3834,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_write_handler,
         _1, _2, 50, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 50));
@@ -3845,7 +3845,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 1));
@@ -3856,7 +3856,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 1));
@@ -3868,7 +3868,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 1));
@@ -3880,7 +3880,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 1));
@@ -3892,7 +3892,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 1));
@@ -3904,7 +3904,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 1));
@@ -3915,7 +3915,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 10));
@@ -3926,7 +3926,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 10));
@@ -3938,7 +3938,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 10));
@@ -3950,7 +3950,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 10));
@@ -3962,7 +3962,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 10));
@@ -3974,7 +3974,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 10));
@@ -3985,7 +3985,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 42));
@@ -3996,7 +3996,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 42));
@@ -4008,7 +4008,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 42));
@@ -4020,7 +4020,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 42));
@@ -4032,7 +4032,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 42));
@@ -4044,7 +4044,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 42));
@@ -4054,7 +4054,7 @@
   asio::async_write_at(s, 0, buffers, old_style_transfer_all,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -4064,7 +4064,7 @@
   asio::async_write_at(s, 1234, buffers, old_style_transfer_all,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -4075,7 +4075,7 @@
   asio::async_write_at(s, 0, buffers, old_style_transfer_all,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -4086,7 +4086,7 @@
   asio::async_write_at(s, 1234, buffers, old_style_transfer_all,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -4097,7 +4097,7 @@
   asio::async_write_at(s, 0, buffers, old_style_transfer_all,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -4108,7 +4108,7 @@
   asio::async_write_at(s, 1234, buffers, old_style_transfer_all,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -4118,7 +4118,7 @@
   asio::async_write_at(s, 0, buffers, short_transfer,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -4128,7 +4128,7 @@
   asio::async_write_at(s, 1234, buffers, short_transfer,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -4139,7 +4139,7 @@
   asio::async_write_at(s, 0, buffers, short_transfer,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -4150,7 +4150,7 @@
   asio::async_write_at(s, 1234, buffers, short_transfer,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -4161,7 +4161,7 @@
   asio::async_write_at(s, 0, buffers, short_transfer,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -4172,7 +4172,7 @@
   asio::async_write_at(s, 1234, buffers, short_transfer,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -4181,7 +4181,7 @@
   int i = asio::async_write_at(s, 0, buffers, short_transfer,
       archetypes::lazy_handler());
   ASIO_CHECK(i == 42);
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
 }
@@ -4207,7 +4207,7 @@
       asio::transfer_all(),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(mutable_write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
@@ -4218,7 +4218,7 @@
       asio::transfer_all(),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(mutable_write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
@@ -4230,7 +4230,7 @@
       asio::transfer_all(),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(mutable_write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
@@ -4242,7 +4242,7 @@
       asio::transfer_all(),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(mutable_write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
@@ -4254,7 +4254,7 @@
       asio::transfer_all(),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(mutable_write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
@@ -4266,7 +4266,7 @@
       asio::transfer_all(),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(mutable_write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
@@ -4277,7 +4277,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(mutable_write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
@@ -4288,7 +4288,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(mutable_write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
@@ -4300,7 +4300,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 1));
@@ -4312,7 +4312,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 1));
@@ -4324,7 +4324,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 10));
@@ -4336,7 +4336,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 10));
@@ -4347,7 +4347,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(mutable_write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
@@ -4358,7 +4358,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(mutable_write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
@@ -4370,7 +4370,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 10));
@@ -4382,7 +4382,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 10));
@@ -4394,7 +4394,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 10));
@@ -4406,7 +4406,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 10));
@@ -4417,7 +4417,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(mutable_write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
@@ -4428,7 +4428,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(mutable_write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
@@ -4440,7 +4440,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 42));
@@ -4452,7 +4452,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 42));
@@ -4464,7 +4464,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_write_handler,
         _1, _2, 50, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 50));
@@ -4476,7 +4476,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_write_handler,
         _1, _2, 50, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 50));
@@ -4487,7 +4487,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 1));
@@ -4498,7 +4498,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 1));
@@ -4510,7 +4510,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 1));
@@ -4522,7 +4522,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 1));
@@ -4534,7 +4534,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 1));
@@ -4546,7 +4546,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 1));
@@ -4557,7 +4557,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 10));
@@ -4568,7 +4568,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 10));
@@ -4580,7 +4580,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 10));
@@ -4592,7 +4592,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 10));
@@ -4604,7 +4604,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 10));
@@ -4616,7 +4616,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 10));
@@ -4627,7 +4627,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 42));
@@ -4638,7 +4638,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 42));
@@ -4650,7 +4650,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 42));
@@ -4662,7 +4662,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 42));
@@ -4674,7 +4674,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 42));
@@ -4686,7 +4686,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 42));
@@ -4696,7 +4696,7 @@
   asio::async_write_at(s, 0, buffers, old_style_transfer_all,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(mutable_write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
@@ -4706,7 +4706,7 @@
   asio::async_write_at(s, 1234, buffers, old_style_transfer_all,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(mutable_write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
@@ -4717,7 +4717,7 @@
   asio::async_write_at(s, 0, buffers, old_style_transfer_all,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(mutable_write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
@@ -4728,7 +4728,7 @@
   asio::async_write_at(s, 1234, buffers, old_style_transfer_all,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(mutable_write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
@@ -4739,7 +4739,7 @@
   asio::async_write_at(s, 0, buffers, old_style_transfer_all,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(mutable_write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
@@ -4750,7 +4750,7 @@
   asio::async_write_at(s, 1234, buffers, old_style_transfer_all,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(mutable_write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
@@ -4760,7 +4760,7 @@
   asio::async_write_at(s, 0, buffers, short_transfer,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(mutable_write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
@@ -4770,7 +4770,7 @@
   asio::async_write_at(s, 1234, buffers, short_transfer,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(mutable_write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
@@ -4781,7 +4781,7 @@
   asio::async_write_at(s, 0, buffers, short_transfer,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(mutable_write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
@@ -4792,7 +4792,7 @@
   asio::async_write_at(s, 1234, buffers, short_transfer,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(mutable_write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
@@ -4803,7 +4803,7 @@
   asio::async_write_at(s, 0, buffers, short_transfer,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(mutable_write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(mutable_write_data)));
@@ -4814,7 +4814,7 @@
   asio::async_write_at(s, 1234, buffers, short_transfer,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(mutable_write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(mutable_write_data)));
@@ -4823,7 +4823,7 @@
   int i = asio::async_write_at(s, 0, buffers, short_transfer,
       archetypes::lazy_handler());
   ASIO_CHECK(i == 42);
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
 }
@@ -4851,7 +4851,7 @@
       asio::transfer_all(),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -4862,7 +4862,7 @@
       asio::transfer_all(),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -4874,7 +4874,7 @@
       asio::transfer_all(),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -4886,7 +4886,7 @@
       asio::transfer_all(),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -4898,7 +4898,7 @@
       asio::transfer_all(),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -4910,7 +4910,7 @@
       asio::transfer_all(),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -4921,7 +4921,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -4932,7 +4932,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -4944,7 +4944,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 1));
@@ -4956,7 +4956,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 1));
@@ -4968,7 +4968,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 10));
@@ -4980,7 +4980,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 10));
@@ -4991,7 +4991,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -5002,7 +5002,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -5014,7 +5014,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 10));
@@ -5026,7 +5026,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 10));
@@ -5038,7 +5038,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 10));
@@ -5050,7 +5050,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 10));
@@ -5061,7 +5061,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -5072,7 +5072,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -5084,7 +5084,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 42));
@@ -5096,7 +5096,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 42));
@@ -5108,7 +5108,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_write_handler,
         _1, _2, 50, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 50));
@@ -5120,7 +5120,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_write_handler,
         _1, _2, 50, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 50));
@@ -5131,7 +5131,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 1));
@@ -5142,7 +5142,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 1));
@@ -5154,7 +5154,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 1));
@@ -5166,7 +5166,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 1));
@@ -5178,7 +5178,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 1));
@@ -5190,7 +5190,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 1));
@@ -5201,7 +5201,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 10));
@@ -5212,7 +5212,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 10));
@@ -5224,7 +5224,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 10));
@@ -5236,7 +5236,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 10));
@@ -5248,7 +5248,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 10));
@@ -5260,7 +5260,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 10));
@@ -5271,7 +5271,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 42));
@@ -5282,7 +5282,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 42));
@@ -5294,7 +5294,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 42));
@@ -5306,7 +5306,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 42));
@@ -5318,7 +5318,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 42));
@@ -5330,7 +5330,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 42));
@@ -5340,7 +5340,7 @@
   asio::async_write_at(s, 0, buffers, old_style_transfer_all,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -5350,7 +5350,7 @@
   asio::async_write_at(s, 1234, buffers, old_style_transfer_all,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -5361,7 +5361,7 @@
   asio::async_write_at(s, 0, buffers, old_style_transfer_all,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -5372,7 +5372,7 @@
   asio::async_write_at(s, 1234, buffers, old_style_transfer_all,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -5383,7 +5383,7 @@
   asio::async_write_at(s, 0, buffers, old_style_transfer_all,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -5394,7 +5394,7 @@
   asio::async_write_at(s, 1234, buffers, old_style_transfer_all,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -5404,7 +5404,7 @@
   asio::async_write_at(s, 0, buffers, short_transfer,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -5414,7 +5414,7 @@
   asio::async_write_at(s, 1234, buffers, short_transfer,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -5425,7 +5425,7 @@
   asio::async_write_at(s, 0, buffers, short_transfer,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -5436,7 +5436,7 @@
   asio::async_write_at(s, 1234, buffers, short_transfer,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -5447,7 +5447,7 @@
   asio::async_write_at(s, 0, buffers, short_transfer,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -5458,7 +5458,7 @@
   asio::async_write_at(s, 1234, buffers, short_transfer,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -5467,7 +5467,7 @@
   int i = asio::async_write_at(s, 0, buffers, short_transfer,
       archetypes::lazy_handler());
   ASIO_CHECK(i == 42);
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
 #endif // defined(ASIO_HAS_BOOST_ARRAY)
@@ -5496,7 +5496,7 @@
       asio::transfer_all(),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -5507,7 +5507,7 @@
       asio::transfer_all(),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -5519,7 +5519,7 @@
       asio::transfer_all(),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -5531,7 +5531,7 @@
       asio::transfer_all(),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -5543,7 +5543,7 @@
       asio::transfer_all(),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -5555,7 +5555,7 @@
       asio::transfer_all(),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -5566,7 +5566,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -5577,7 +5577,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -5589,7 +5589,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 1));
@@ -5601,7 +5601,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 1));
@@ -5613,7 +5613,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 10));
@@ -5625,7 +5625,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 10));
@@ -5636,7 +5636,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -5647,7 +5647,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -5659,7 +5659,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 10));
@@ -5671,7 +5671,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 10));
@@ -5683,7 +5683,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 10));
@@ -5695,7 +5695,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 10));
@@ -5706,7 +5706,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -5717,7 +5717,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -5729,7 +5729,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 42));
@@ -5741,7 +5741,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 42));
@@ -5753,7 +5753,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_write_handler,
         _1, _2, 50, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 50));
@@ -5765,7 +5765,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_write_handler,
         _1, _2, 50, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 50));
@@ -5776,7 +5776,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 1));
@@ -5787,7 +5787,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 1));
@@ -5799,7 +5799,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 1));
@@ -5811,7 +5811,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 1));
@@ -5823,7 +5823,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 1));
@@ -5835,7 +5835,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 1));
@@ -5846,7 +5846,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 10));
@@ -5857,7 +5857,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 10));
@@ -5869,7 +5869,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 10));
@@ -5881,7 +5881,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 10));
@@ -5893,7 +5893,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 10));
@@ -5905,7 +5905,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 10));
@@ -5916,7 +5916,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 42));
@@ -5927,7 +5927,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 42));
@@ -5939,7 +5939,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 42));
@@ -5951,7 +5951,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 42));
@@ -5963,7 +5963,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 42));
@@ -5975,7 +5975,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 42));
@@ -5985,7 +5985,7 @@
   asio::async_write_at(s, 0, buffers, old_style_transfer_all,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -5995,7 +5995,7 @@
   asio::async_write_at(s, 1234, buffers, old_style_transfer_all,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -6006,7 +6006,7 @@
   asio::async_write_at(s, 0, buffers, old_style_transfer_all,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -6017,7 +6017,7 @@
   asio::async_write_at(s, 1234, buffers, old_style_transfer_all,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -6028,7 +6028,7 @@
   asio::async_write_at(s, 0, buffers, old_style_transfer_all,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -6039,7 +6039,7 @@
   asio::async_write_at(s, 1234, buffers, old_style_transfer_all,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -6049,7 +6049,7 @@
   asio::async_write_at(s, 0, buffers, short_transfer,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -6059,7 +6059,7 @@
   asio::async_write_at(s, 1234, buffers, short_transfer,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -6070,7 +6070,7 @@
   asio::async_write_at(s, 0, buffers, short_transfer,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -6081,7 +6081,7 @@
   asio::async_write_at(s, 1234, buffers, short_transfer,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -6092,7 +6092,7 @@
   asio::async_write_at(s, 0, buffers, short_transfer,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -6103,7 +6103,7 @@
   asio::async_write_at(s, 1234, buffers, short_transfer,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -6112,7 +6112,7 @@
   int i = asio::async_write_at(s, 0, buffers, short_transfer,
       archetypes::lazy_handler());
   ASIO_CHECK(i == 42);
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
 #endif // defined(ASIO_HAS_STD_ARRAY)
@@ -6140,7 +6140,7 @@
       asio::transfer_all(),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -6151,7 +6151,7 @@
       asio::transfer_all(),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -6163,7 +6163,7 @@
       asio::transfer_all(),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -6175,7 +6175,7 @@
       asio::transfer_all(),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -6187,7 +6187,7 @@
       asio::transfer_all(),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -6199,7 +6199,7 @@
       asio::transfer_all(),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -6210,7 +6210,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -6221,7 +6221,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -6233,7 +6233,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 1));
@@ -6245,7 +6245,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 1));
@@ -6257,7 +6257,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 10));
@@ -6269,7 +6269,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 10));
@@ -6280,7 +6280,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -6291,7 +6291,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -6303,7 +6303,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 10));
@@ -6315,7 +6315,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 10));
@@ -6327,7 +6327,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 10));
@@ -6339,7 +6339,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 10));
@@ -6350,7 +6350,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -6361,7 +6361,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -6373,7 +6373,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 42));
@@ -6385,7 +6385,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 42));
@@ -6397,7 +6397,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_write_handler,
         _1, _2, 50, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 50));
@@ -6409,7 +6409,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_write_handler,
         _1, _2, 50, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 50));
@@ -6420,7 +6420,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 1));
@@ -6431,7 +6431,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 1));
@@ -6443,7 +6443,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 1));
@@ -6455,7 +6455,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 1));
@@ -6467,7 +6467,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 1));
@@ -6479,7 +6479,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 1));
@@ -6490,7 +6490,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 10));
@@ -6501,7 +6501,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 10));
@@ -6513,7 +6513,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 10));
@@ -6525,7 +6525,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 10));
@@ -6537,7 +6537,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 10));
@@ -6549,7 +6549,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 10));
@@ -6560,7 +6560,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 42));
@@ -6571,7 +6571,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 42));
@@ -6583,7 +6583,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 42));
@@ -6595,7 +6595,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 42));
@@ -6607,7 +6607,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 42));
@@ -6619,7 +6619,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 42));
@@ -6629,7 +6629,7 @@
   asio::async_write_at(s, 0, buffers, old_style_transfer_all,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -6639,7 +6639,7 @@
   asio::async_write_at(s, 1234, buffers, old_style_transfer_all,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -6650,7 +6650,7 @@
   asio::async_write_at(s, 0, buffers, old_style_transfer_all,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -6661,7 +6661,7 @@
   asio::async_write_at(s, 1234, buffers, old_style_transfer_all,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -6672,7 +6672,7 @@
   asio::async_write_at(s, 0, buffers, old_style_transfer_all,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -6683,7 +6683,7 @@
   asio::async_write_at(s, 1234, buffers, old_style_transfer_all,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -6693,7 +6693,7 @@
   asio::async_write_at(s, 0, buffers, short_transfer,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -6703,7 +6703,7 @@
   asio::async_write_at(s, 1234, buffers, short_transfer,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -6714,7 +6714,7 @@
   asio::async_write_at(s, 0, buffers, short_transfer,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -6725,7 +6725,7 @@
   asio::async_write_at(s, 1234, buffers, short_transfer,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -6736,7 +6736,7 @@
   asio::async_write_at(s, 0, buffers, short_transfer,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -6747,7 +6747,7 @@
   asio::async_write_at(s, 1234, buffers, short_transfer,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -6756,7 +6756,7 @@
   int i = asio::async_write_at(s, 0, buffers, short_transfer,
       archetypes::lazy_handler());
   ASIO_CHECK(i == 42);
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
 }
@@ -6785,7 +6785,7 @@
       asio::transfer_all(),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -6798,7 +6798,7 @@
       asio::transfer_all(),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -6812,7 +6812,7 @@
       asio::transfer_all(),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -6826,7 +6826,7 @@
       asio::transfer_all(),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -6840,7 +6840,7 @@
       asio::transfer_all(),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -6854,7 +6854,7 @@
       asio::transfer_all(),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -6867,7 +6867,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -6880,7 +6880,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -6894,7 +6894,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 1));
@@ -6908,7 +6908,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 1));
@@ -6922,7 +6922,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 10));
@@ -6936,7 +6936,7 @@
       asio::transfer_at_least(1),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 10));
@@ -6949,7 +6949,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -6962,7 +6962,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -6976,7 +6976,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 10));
@@ -6990,7 +6990,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 10));
@@ -7004,7 +7004,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 10));
@@ -7018,7 +7018,7 @@
       asio::transfer_at_least(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 10));
@@ -7031,7 +7031,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -7044,7 +7044,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -7058,7 +7058,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 42));
@@ -7072,7 +7072,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 42));
@@ -7086,7 +7086,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_write_handler,
         _1, _2, 50, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 50));
@@ -7100,7 +7100,7 @@
       asio::transfer_at_least(42),
       bindns::bind(async_write_handler,
         _1, _2, 50, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 50));
@@ -7113,7 +7113,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 1));
@@ -7126,7 +7126,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 1));
@@ -7140,7 +7140,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 1));
@@ -7154,7 +7154,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 1));
@@ -7168,7 +7168,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 1));
@@ -7182,7 +7182,7 @@
       asio::transfer_exactly(1),
       bindns::bind(async_write_handler,
         _1, _2, 1, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 1));
@@ -7195,7 +7195,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 10));
@@ -7208,7 +7208,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 10));
@@ -7222,7 +7222,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 10));
@@ -7236,7 +7236,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 10));
@@ -7250,7 +7250,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 10));
@@ -7264,7 +7264,7 @@
       asio::transfer_exactly(10),
       bindns::bind(async_write_handler,
         _1, _2, 10, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 10));
@@ -7277,7 +7277,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 42));
@@ -7290,7 +7290,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 42));
@@ -7304,7 +7304,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 42));
@@ -7318,7 +7318,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 42));
@@ -7332,7 +7332,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, 42));
@@ -7346,7 +7346,7 @@
       asio::transfer_exactly(42),
       bindns::bind(async_write_handler,
         _1, _2, 42, &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, 42));
@@ -7358,7 +7358,7 @@
   asio::async_write_at(s, 0, sb, old_style_transfer_all,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -7370,7 +7370,7 @@
   asio::async_write_at(s, 1234, sb, old_style_transfer_all,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -7383,7 +7383,7 @@
   asio::async_write_at(s, 0, sb, old_style_transfer_all,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -7396,7 +7396,7 @@
   asio::async_write_at(s, 1234, sb, old_style_transfer_all,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -7409,7 +7409,7 @@
   asio::async_write_at(s, 0, sb, old_style_transfer_all,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -7422,7 +7422,7 @@
   asio::async_write_at(s, 1234, sb, old_style_transfer_all,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -7434,7 +7434,7 @@
   asio::async_write_at(s, 0, sb, short_transfer,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -7446,7 +7446,7 @@
   asio::async_write_at(s, 1234, sb, short_transfer,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -7459,7 +7459,7 @@
   asio::async_write_at(s, 0, sb, short_transfer,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -7472,7 +7472,7 @@
   asio::async_write_at(s, 1234, sb, short_transfer,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -7485,7 +7485,7 @@
   asio::async_write_at(s, 0, sb, short_transfer,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
@@ -7498,7 +7498,7 @@
   asio::async_write_at(s, 1234, sb, short_transfer,
       bindns::bind(async_write_handler,
         _1, _2, sizeof(write_data), &called));
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(called);
   ASIO_CHECK(s.check_buffers(1234, buffers, sizeof(write_data)));
@@ -7509,7 +7509,7 @@
   int i = asio::async_write_at(s, 0, sb, short_transfer,
       archetypes::lazy_handler());
   ASIO_CHECK(i == 42);
-  ios.reset();
+  ios.restart();
   ios.run();
   ASIO_CHECK(s.check_buffers(0, buffers, sizeof(write_data)));
 }