Commit Graph

1359 Commits

Author SHA1 Message Date
Christopher Kohlhoff
615a75884b Fix unused argument warning. 2014-05-04 09:37:01 +10:00
Christopher Kohlhoff
a6feafa553 Regenerate documentation. 2014-05-03 11:52:17 +10:00
Christopher Kohlhoff
0484963a55 Use ConnectEx where available.
N.B. This change conservatively limits the use of ConnectEx to
connection-oriented IP sockets.
2014-05-03 10:25:31 +10:00
Christopher Kohlhoff
107dcb750f Update some more copyright notices. 2014-05-03 10:21:15 +10:00
Christopher Kohlhoff
9d13af49f8 Disable GetQueuedCompletionStatus workaround on recent Windows versions. 2014-05-03 10:18:39 +10:00
Christopher Kohlhoff
e4e914bc4d Fix type aliasing issue reported by gcc.
Fixes boost trac ticket #9550.
2014-05-03 10:17:42 +10:00
Christopher Kohlhoff
c06aa74f08 Make select_reactor more efficient on Windows for large numbers of sockets.
Fixes boost trac ticket #9528.
2014-05-03 10:15:07 +10:00
Christopher Kohlhoff
1417badc04 Clarify that commit() and consume() do not throw.
Fixes boost trac ticket #9605.
2014-05-03 10:14:11 +10:00
Christopher Kohlhoff
9e75760570 Fix infinite recursion in operator~ implementation.
Fixes boost trac ticket #9548.
2014-05-03 10:13:08 +10:00
Christopher Kohlhoff
981addd4ee Fix incorrect documentation on async_send.
Fixed boost trac ticket #9771.
2014-05-03 10:11:02 +10:00
Christopher Kohlhoff
660e9fe302 Fix occasional close() system call hang on MacOS.
Repeated re-registration of kqueue event filters seems to behave as
though there is some kind of "leak" on MacOS, culminating in a suspended
close() system call and an unkillable process. To avoid this, we will
register a descriptor's kqueue event filters once only i.e. when the
descriptor is first created.
2014-05-03 10:10:12 +10:00
Christopher Kohlhoff
92a53bd3cc Compute greatest common divisor to prevent unnecessary integer overflow.
Fixes boost trac tickets #9662, #9778.
2014-05-03 10:09:04 +10:00
Christopher Kohlhoff
bd50a1b593 Ensure incomplete coroutines are correctly unwound.
We must take care not to hold a shared_ptr to the coroutine across
its own suspension point, otherwise it will not be unwound by the
io_service destructor. Move-enabled C++11 compilers take care of this
automatically, but with C++03 we must explicitly reset the shared_ptr.

Fixes boost trac ticket #9731.
2014-05-03 10:05:23 +10:00
Christopher Kohlhoff
85640f548a Fix spawn() when Boost.Coroutine v2 is used.
Fixes boost trac tickets #9442, #9928.
2014-05-03 09:40:42 +10:00
Christopher Kohlhoff
3cc2cd94be Fix delegation of continuation hook.
Fixes boost trac ticket #9741.
2014-05-03 09:28:25 +10:00
Christopher Kohlhoff
8dd99f4e04 Make system_error available via error.hpp. 2014-05-03 09:27:36 +10:00
Christopher Kohlhoff
02659b6fde Add extra #include needed by latest Xcode. 2014-05-03 09:26:42 +10:00
Christopher Kohlhoff
28f690f504 Update copyright notices. 2014-05-03 09:25:39 +10:00
Christopher Kohlhoff
592a8e25f5 Create initial merge point for git. 2014-05-03 08:58:06 +10:00
Christopher Kohlhoff
0e90106a30 Make develop identical to master. 2014-05-03 08:57:44 +10:00
Christopher Kohlhoff
797e9d5171 Merge from trunk.
------------------------------------------------------------------------
r86152 | chris_kohlhoff | 2013-10-04 09:59:54 +1000 (Fri, 04 Oct 2013) | 1 line

Fix WinRT detection.
------------------------------------------------------------------------
r86153 | chris_kohlhoff | 2013-10-04 10:00:46 +1000 (Fri, 04 Oct 2013) | 1 line

Add WinRT implementation notes.
------------------------------------------------------------------------
r86154 | chris_kohlhoff | 2013-10-04 10:03:36 +1000 (Fri, 04 Oct 2013) | 1 line

Fix dead links in documentation.
------------------------------------------------------------------------
r86462 | chris_kohlhoff | 2013-10-27 09:32:01 +1100 (Sun, 27 Oct 2013) | 1 line

Suppress conversion warnings reported by MSVC.
------------------------------------------------------------------------
r86463 | chris_kohlhoff | 2013-10-27 09:35:32 +1100 (Sun, 27 Oct 2013) | 1 line

Support older versions of OpenSSL that don't supply SSL_CTX_clear_options.
------------------------------------------------------------------------
r86464 | chris_kohlhoff | 2013-10-27 09:39:23 +1100 (Sun, 27 Oct 2013) | 1 line

Add a note to clarify that concurrent invocation is not guaranteed for handlers in different strands.
------------------------------------------------------------------------
r86465 | chris_kohlhoff | 2013-10-27 09:42:53 +1100 (Sun, 27 Oct 2013) | 1 line

Fix typos in spawn() documentation.
------------------------------------------------------------------------
r86468 | chris_kohlhoff | 2013-10-27 09:49:17 +1100 (Sun, 27 Oct 2013) | 1 line

Updated revision history.
------------------------------------------------------------------------


[SVN r86470]
2013-10-26 23:25:53 +00:00
Christopher Kohlhoff
83ae6fa7cb Updated revision history.
[SVN r86468]
2013-10-26 22:49:17 +00:00
Christopher Kohlhoff
0d57ea2d16 Fix typos in spawn() documentation.
[SVN r86465]
2013-10-26 22:42:53 +00:00
Christopher Kohlhoff
0113c1831f Add a note to clarify that concurrent invocation is not guaranteed for handlers in different strands.
[SVN r86464]
2013-10-26 22:39:23 +00:00
Christopher Kohlhoff
41899ae46a Support older versions of OpenSSL that don't supply SSL_CTX_clear_options.
[SVN r86463]
2013-10-26 22:35:32 +00:00
Christopher Kohlhoff
8612b7b1bd Suppress conversion warnings reported by MSVC.
[SVN r86462]
2013-10-26 22:32:01 +00:00
Christopher Kohlhoff
40cba52d74 Fix dead links in documentation.
[SVN r86154]
2013-10-04 00:03:36 +00:00
Christopher Kohlhoff
8acd8eb341 Add WinRT implementation notes.
[SVN r86153]
2013-10-04 00:00:46 +00:00
Christopher Kohlhoff
813f272583 Fix WinRT detection.
[SVN r86152]
2013-10-03 23:59:54 +00:00
Christopher Kohlhoff
e290a34cd3 Reverted asio changed made under [85904], [85952], [86050] and [86105]. Will reconsider after 1.55 is released.
[SVN r86151]
2013-10-03 22:59:24 +00:00
Stephen Kelly
bf56879631 Asio: Remove obsolete GCC version checks.
[SVN r86105]
2013-10-01 08:42:20 +00:00
Christopher Kohlhoff
b61f0cf5cc Revision history.
[SVN r86093]
2013-09-30 22:40:13 +00:00
Christopher Kohlhoff
f8f33ed29c Revision history.
[SVN r86092]
2013-09-30 22:37:40 +00:00
Stephen Kelly
dafe0562c7 ASIO: Clean up pragma guard comment.
[SVN r86050]
2013-09-30 11:22:07 +00:00
Stephen Kelly
93b2b4dc46 Remove obsolete MSVC check from pragma guard
git grep -h -B1 "^#\s*pragma once" | grep -v pragma | sort | uniq

is now clean.

[SVN r85952]
2013-09-26 13:02:51 +00:00
Stephen Kelly
b571d87989 Asio: Remove obsolete MSVC version check.
[SVN r85904]
2013-09-25 13:51:51 +00:00
Christopher Kohlhoff
bb5b1f989f Version bump.
[SVN r85839]
2013-09-22 22:16:45 +00:00
Christopher Kohlhoff
68a7cd26a6 Merge asio from trunk.
------------------------------------------------------------------------
r85735 | chris_kohlhoff | 2013-09-18 07:31:55 +1000 (Wed, 18 Sep 2013) | 1 line

Remove dependency on Boost.Preprocessor library.
------------------------------------------------------------------------
r85736 | chris_kohlhoff | 2013-09-18 07:32:48 +1000 (Wed, 18 Sep 2013) | 1 line

Fix error in async_receive_from example.
------------------------------------------------------------------------
r85737 | chris_kohlhoff | 2013-09-18 07:33:39 +1000 (Wed, 18 Sep 2013) | 1 line

Remove unused variable assignment.
------------------------------------------------------------------------
r85738 | chris_kohlhoff | 2013-09-18 07:35:43 +1000 (Wed, 18 Sep 2013) | 3 lines

Fix a regression where, on some platforms, errors from async_connect are not
correctly propagated through to the completion handler.

------------------------------------------------------------------------
r85739 | chris_kohlhoff | 2013-09-18 07:36:54 +1000 (Wed, 18 Sep 2013) | 1 line

Remove unused parameters and member variables.
------------------------------------------------------------------------
r85740 | chris_kohlhoff | 2013-09-18 07:38:41 +1000 (Wed, 18 Sep 2013) | 1 line

Fix nfds argument to select.
------------------------------------------------------------------------
r85741 | chris_kohlhoff | 2013-09-18 07:39:38 +1000 (Wed, 18 Sep 2013) | 1 line

Fix a regression on Windows where multiple threads are running an io_service.
------------------------------------------------------------------------
r85742 | chris_kohlhoff | 2013-09-18 07:40:19 +1000 (Wed, 18 Sep 2013) | 1 line

Fix typo in serial ports overview.
------------------------------------------------------------------------
r85743 | chris_kohlhoff | 2013-09-18 07:41:04 +1000 (Wed, 18 Sep 2013) | 1 line

Ensure ssl::io_op::want_ member is initialised.
------------------------------------------------------------------------
r85744 | chris_kohlhoff | 2013-09-18 07:42:08 +1000 (Wed, 18 Sep 2013) | 1 line

Fix a bug in handler tracking, where it was not correctly printing out some handler IDs.
------------------------------------------------------------------------
r85745 | chris_kohlhoff | 2013-09-18 07:42:48 +1000 (Wed, 18 Sep 2013) | 1 line

Fix comparison used to test for a successful synchronous accept.
------------------------------------------------------------------------
r85746 | chris_kohlhoff | 2013-09-18 07:43:29 +1000 (Wed, 18 Sep 2013) | 3 lines

Ensure signal number is correctly passed to the completion handler when
starting an async_wait on a signal that is already raised.

------------------------------------------------------------------------
r85747 | chris_kohlhoff | 2013-09-18 07:45:43 +1000 (Wed, 18 Sep 2013) | 1 line

Suppress g++ 4.8+ warning about unused typedefs.
------------------------------------------------------------------------
r85748 | chris_kohlhoff | 2013-09-18 07:48:54 +1000 (Wed, 18 Sep 2013) | 1 line

Fix link to refer to native_handle() rather than the deprecated native() function.
------------------------------------------------------------------------
r85749 | chris_kohlhoff | 2013-09-18 07:51:28 +1000 (Wed, 18 Sep 2013) | 3 lines

Enable the move optimisation (and otherwise eliminate a copy) for handlers
using the default invocation hook.

------------------------------------------------------------------------
r85750 | chris_kohlhoff | 2013-09-18 07:52:27 +1000 (Wed, 18 Sep 2013) | 2 lines

Clarify that programs must not issue overlapping async_write_at operations.

------------------------------------------------------------------------
r85751 | chris_kohlhoff | 2013-09-18 07:53:03 +1000 (Wed, 18 Sep 2013) | 1 line

Fix error in comment.
------------------------------------------------------------------------
r85752 | chris_kohlhoff | 2013-09-18 07:53:45 +1000 (Wed, 18 Sep 2013) | 1 line

Remove spurious whitespace.
------------------------------------------------------------------------
r85753 | chris_kohlhoff | 2013-09-18 08:00:53 +1000 (Wed, 18 Sep 2013) | 2 lines

Clean up some internal forward declarations.

------------------------------------------------------------------------
r85754 | chris_kohlhoff | 2013-09-18 08:01:26 +1000 (Wed, 18 Sep 2013) | 1 line

Add missing move cast.
------------------------------------------------------------------------
r85755 | chris_kohlhoff | 2013-09-18 08:03:29 +1000 (Wed, 18 Sep 2013) | 3 lines

Fix another socket descriptor comparison that doesn't work correctly if
the descriptor type is unsigned.

------------------------------------------------------------------------
r85756 | chris_kohlhoff | 2013-09-18 08:04:10 +1000 (Wed, 18 Sep 2013) | 3 lines

Fix documentation error where an asynchronous function was described as
having synchronous behaviour.

------------------------------------------------------------------------
r85757 | chris_kohlhoff | 2013-09-18 08:04:55 +1000 (Wed, 18 Sep 2013) | 1 line

Add missing forward declarations needed for Windows.
------------------------------------------------------------------------
r85758 | chris_kohlhoff | 2013-09-18 08:05:38 +1000 (Wed, 18 Sep 2013) | 1 line

Remove use of std::min.
------------------------------------------------------------------------
r85759 | chris_kohlhoff | 2013-09-18 08:06:25 +1000 (Wed, 18 Sep 2013) | 3 lines

Inore ERROR_MORE_DATA as a non-fatal error when returned by
GetOverlappedResult for a synchronous read.

------------------------------------------------------------------------
r85760 | chris_kohlhoff | 2013-09-18 08:08:07 +1000 (Wed, 18 Sep 2013) | 2 lines

Enable certain C++11 standard library facilities for recent versions of Microsoft Visual Studio.

------------------------------------------------------------------------
r85761 | chris_kohlhoff | 2013-09-18 08:08:43 +1000 (Wed, 18 Sep 2013) | 4 lines

Visual C++ language extensions use generic as a keyword. Add a
workaround that renames the namespace to cpp_generic when those
language extensions are in effect.

------------------------------------------------------------------------
r85762 | chris_kohlhoff | 2013-09-18 08:12:07 +1000 (Wed, 18 Sep 2013) | 2 lines

Some async operations that missed getting the async_result treatment.

------------------------------------------------------------------------
r85763 | chris_kohlhoff | 2013-09-18 08:14:14 +1000 (Wed, 18 Sep 2013) | 2 lines

Eliminate some unnecessary handler copies.

------------------------------------------------------------------------
r85764 | chris_kohlhoff | 2013-09-18 08:24:19 +1000 (Wed, 18 Sep 2013) | 26 lines

Initial port to Windows Runtime.

This change adds limited support for using Asio with the Windows
Runtime. It requires that the language extensions be enabled. Due to the
restricted facilities exposed by the Windows Runtime API, the port comes
with the following caveats:

* The core facilities such as the io_service, strand, buffers, composed
  operations, timers, etc., should all work as normal.

* For sockets, only client-side TCP is supported.

* Explicit binding of a client-side TCP socket is not supported.

* The cancel() function is not supported for sockets. Asynchronous
  operations may only be cancelled by closing the socket.

* Operations that use null_buffers are not supported.

* Only tcp::no_delay and socket_base::keep_alive options are supported.

* Resolvers do not support service names, only numbers. I.e. you must
  use 80 rather than http.

* Most resolver query flags have no effect.

------------------------------------------------------------------------
r85765 | chris_kohlhoff | 2013-09-18 08:32:13 +1000 (Wed, 18 Sep 2013) | 1 line

Regenerate documentation.
------------------------------------------------------------------------
r85766 | chris_kohlhoff | 2013-09-18 08:38:04 +1000 (Wed, 18 Sep 2013) | 2 lines

Enable move support for Microsoft Visual C++ 2012.

------------------------------------------------------------------------
r85767 | chris_kohlhoff | 2013-09-18 08:42:50 +1000 (Wed, 18 Sep 2013) | 2 lines

Add use_future support for Microsoft Visual C++.

------------------------------------------------------------------------
r85768 | chris_kohlhoff | 2013-09-18 08:53:17 +1000 (Wed, 18 Sep 2013) | 2 lines

Fix prefix on extern "C" function name.

------------------------------------------------------------------------
r85781 | chris_kohlhoff | 2013-09-19 08:43:01 +1000 (Thu, 19 Sep 2013) | 1 line

Implement end-of-file condition for WinRT stream sockets.
------------------------------------------------------------------------
r85798 | chris_kohlhoff | 2013-09-20 22:00:44 +1000 (Fri, 20 Sep 2013) | 2 lines

Update buffered stream operations to adhere to current handler patterns.

------------------------------------------------------------------------
r85799 | chris_kohlhoff | 2013-09-20 22:02:33 +1000 (Fri, 20 Sep 2013) | 1 line

MinGW fix.
------------------------------------------------------------------------
r85800 | chris_kohlhoff | 2013-09-20 22:04:00 +1000 (Fri, 20 Sep 2013) | 1 line

Change unit tests so that they don't depend on Boost.Thread.
------------------------------------------------------------------------
r85801 | chris_kohlhoff | 2013-09-20 22:10:45 +1000 (Fri, 20 Sep 2013) | 1 line

Regenerate documentation.
------------------------------------------------------------------------
r85823 | danieljames | 2013-09-22 20:32:36 +1000 (Sun, 22 Sep 2013) | 1 line

Fix copying C++11 allocation examples
------------------------------------------------------------------------


[SVN r85838]
2013-09-22 22:13:33 +00:00
Daniel James
cf6b86a4c9 Fix copying C++11 allocation examples
[SVN r85823]
2013-09-22 10:32:36 +00:00
Christopher Kohlhoff
91fce6c711 Regenerate documentation.
[SVN r85801]
2013-09-20 12:10:45 +00:00
Christopher Kohlhoff
50fa08dbdc Change unit tests so that they don't depend on Boost.Thread.
[SVN r85800]
2013-09-20 12:04:00 +00:00
Christopher Kohlhoff
03b51d1764 MinGW fix.
[SVN r85799]
2013-09-20 12:02:33 +00:00
Christopher Kohlhoff
2c7c13012a Update buffered stream operations to adhere to current handler patterns.
[SVN r85798]
2013-09-20 12:00:44 +00:00
Christopher Kohlhoff
d08bc082f2 Implement end-of-file condition for WinRT stream sockets.
[SVN r85781]
2013-09-18 22:43:01 +00:00
Christopher Kohlhoff
d3845b7fd3 Fix prefix on extern "C" function name.
[SVN r85768]
2013-09-17 22:53:17 +00:00
Christopher Kohlhoff
1cd626f4d7 Add use_future support for Microsoft Visual C++.
[SVN r85767]
2013-09-17 22:42:50 +00:00
Christopher Kohlhoff
8047e7f180 Enable move support for Microsoft Visual C++ 2012.
[SVN r85766]
2013-09-17 22:38:04 +00:00
Christopher Kohlhoff
18f477583d Regenerate documentation.
[SVN r85765]
2013-09-17 22:32:13 +00:00
Christopher Kohlhoff
e746865f78 Initial port to Windows Runtime.
This change adds limited support for using Asio with the Windows
Runtime. It requires that the language extensions be enabled. Due to the
restricted facilities exposed by the Windows Runtime API, the port comes
with the following caveats:

* The core facilities such as the io_service, strand, buffers, composed
  operations, timers, etc., should all work as normal.

* For sockets, only client-side TCP is supported.

* Explicit binding of a client-side TCP socket is not supported.

* The cancel() function is not supported for sockets. Asynchronous
  operations may only be cancelled by closing the socket.

* Operations that use null_buffers are not supported.

* Only tcp::no_delay and socket_base::keep_alive options are supported.

* Resolvers do not support service names, only numbers. I.e. you must
  use 80 rather than http.

* Most resolver query flags have no effect.


[SVN r85764]
2013-09-17 22:24:19 +00:00
Christopher Kohlhoff
d6bb7d0e4a Eliminate some unnecessary handler copies.
[SVN r85763]
2013-09-17 22:14:14 +00:00