2
0
mirror of https://github.com/boostorg/asio.git synced 2026-01-28 06:42:08 +00:00
Commit Graph

24 Commits

Author SHA1 Message Date
Christopher Kohlhoff
bb38d425fb Merge from trunk:
* Chrono support.

* Added object_handle support.

* Need to enable the basic_handle class when object_handle is supported.

* Update copyright notices.

* Fix MSVC "performance warning".

* Fix for NetBSD. Fixes #6098.

* Fix regression in buffered_write_stream. Fixes #6310.

* Fix deadlock on Mac OS X. Fixes #6275.

* On linux, connect can return EAGAIN in certain circumstances. Remap to another
  error so that it doesn't look like a non-blocking operation. Fixes #6048.

* Fix non-paged pool "leak" on Windows when io_service is repeatedly run without anything to do. Fixes #6321.

* Disable object_handle on Windows CE.

* Add extra include required for OVERLAPPED struct.

* Fix doxygen comments.

* Update documentation.

* Add missing class.

* Update copyright year.


[SVN r76516]
2012-01-15 13:46:25 +00:00
Christopher Kohlhoff
77dec8e703 Merge from trunk...
Fix compile error in regex overload of async_read_until.hpp. Fixes #5688

Explicitly specify the signal() function from the global namespace. Fixes #5722

Don't read the clock unless the heap is non-empty.

Change the SSL buffers sizes so that they're large enough to hold a complete TLS record. Fixes #5854

Make sure the synchronous null_buffers operations obey the user's non_blocking setting. Fixes #5756

Set size of select fd_set at runtime when using Windows.

Disable warning due to const qualifier being applied to function type.

Fix crash due to gcc_x86_fenced_block that shows up when using the Intel C++ compiler. Fixes #5763

Specialise operations for buffer sequences that are arrays of exactly two buffers.

Initialise all OpenSSL algorithms.

Fix error mapping when session is gracefully shut down.

Various performance improvements:

* Split the task_io_service's run and poll code.

* Use thread-local operation queues in single-threaded use cases (i.e. concurrency_hint is 1) to eliminate a lock/unlock pair.

* Only fence block exit when a handler is being run directly out of the io_service.

* Prefer x86 mfence-based fenced block when available.

* Use a plain ol' long for the atomic_count when all thread support is disabled.

* Allow some epoll_reactor speculative operations to be performed without holding the lock.

* Improve locality of reference by performing an epoll_reactor's I/O operation immediately before the corresponding handler is called. This also improves scalability across CPUs when multiple threads are running the io_service.

* Pass same error_code variable through to each operation's complete() function.

* Optimise creation of and access to the io_service implementation.

Remove unused state in HTTP server examples.

Add latency test programs.


[SVN r74863]
2011-10-09 21:59:57 +00:00
Christopher Kohlhoff
b91e7a6f65 Merge asio from trunk.
[SVN r72428]
2011-06-05 23:21:43 +00:00
Christopher Kohlhoff
28ab37a23e Merge from trunk:
* Update copyright notice.

* Version bump.

* Fix out-of-bounds address_v4::broadcast() return value on 64-bit systems.

* Use correct interrupt method when timerfd is not available. Fixes #5045


[SVN r68200]
2011-01-17 04:28:16 +00:00
Christopher Kohlhoff
0f5629d445 Reworked implementation MkII
[SVN r62499]
2010-06-07 00:00:45 +00:00
Christopher Kohlhoff
abaadc5436 Use cancel() to avoid Windows behaviour where a connection is reset if the
socket is closed while there is a pending read operation.


[SVN r60725]
2010-03-19 23:59:48 +00:00
Christopher Kohlhoff
4ab0d73c10 Fix epoll_reactor bug where cancelled operations would complete with a
"success" error_code.


[SVN r60705]
2010-03-19 13:08:04 +00:00
Christopher Kohlhoff
1683a90e86 Fix bug where 0-byte reads were incorrectly passing an eof error_code to the handler. Refs #4023.
[SVN r60689]
2010-03-18 11:08:19 +00:00
Christopher Kohlhoff
235e35039d Include specific headers in unit tests rather than the convenience header asio.hpp.
[SVN r58626]
2010-01-02 07:18:09 +00:00
Christopher Kohlhoff
20a822c591 Update copyright notices.
[SVN r58623]
2010-01-02 01:24:52 +00:00
Christopher Kohlhoff
0218c0b06b Fix implementation of io_control() so that it adheres to the type
requirements for IoControlCommand. Fixes #2820.


[SVN r52294]
2009-04-09 12:16:02 +00:00
Christopher Kohlhoff
aea347d0a7 Add const overloads of the lowest_layer member functions.
[SVN r48535]
2008-09-02 11:34:18 +00:00
Christopher Kohlhoff
8768d9dff1 Fix or suppress MSVC level 4 warnings. Fixes #1703.
[SVN r44727]
2008-04-22 23:46:15 +00:00
Christopher Kohlhoff
a277af13a5 Add a special null_buffers type that allows read and write operations to
be used to indicate the socket's readiness to read or write without
blocking.


[SVN r44673]
2008-04-21 04:02:37 +00:00
Christopher Kohlhoff
f99a3cb814 Update copyright notices.
[SVN r43472]
2008-03-03 14:05:35 +00:00
Christopher Kohlhoff
1248ab625c Try to fix Borland C++ compile errors.
[SVN r37722]
2007-05-20 03:50:23 +00:00
Christopher Kohlhoff
046c9870fc Try to fix AIX compile error in tests.
[SVN r37391]
2007-04-07 09:01:23 +00:00
Christopher Kohlhoff
4ee1510c76 Update socket interfaces to match TR2 proposal.
[SVN r36675]
2007-01-09 13:54:51 +00:00
Christopher Kohlhoff
f35b316f44 Add test cases for socket options.
[SVN r36597]
2007-01-06 10:26:17 +00:00
Christopher Kohlhoff
2ba4146527 Update socket option classes to match interface in TR2 proposal.
[SVN r36582]
2007-01-04 08:21:33 +00:00
Christopher Kohlhoff
2b4748aaaa Update copyright strings to include 2007.
[SVN r36581]
2007-01-04 05:53:07 +00:00
Christopher Kohlhoff
c7f491b73e Fix comment headers to match file names.
[SVN r35941]
2006-11-09 03:02:19 +00:00
Christopher Kohlhoff
852668d1da Change error handling to match TR2 proposal.
[SVN r35911]
2006-11-08 05:32:17 +00:00
Christopher Kohlhoff
da2ef49a00 Add max_size() function to basic_streambuf.
Make basic_io_object constructor protected.

Make a 0-length send or receive on a stream socket into a no-op.

Add cancel() function for cancelling asynchronous socket operations.
The Win32 implementation only works if all operations for the socket
have been issued from the same thread, otherwise it fails with
asio::error::not_supported.

Add workaround for an apparent Windows bug where using getpeername on
a socket accepted using AcceptEx will sometimes return an endpoint
that is all zeroes.

Make a strand last as long as it has any handlers to dispatch. Make
strand a nested class of io_service.

Add io_service() function to io_service::work to return a reference to
the io_service object on which the work is being performed. Renamed
io_service::service::owner() to io_service::service::io_service().

Unset linger object when socket objects are destroyed.

Rename asio_handler_dispatch to asio_handler_invoke.

Rename basic_socketbuf to basic_socket_streambuf.

Update ip::address_v4 and ip::address_v6 classes to match TR2
proposal.

Add run_one(), poll() and poll_one() functions to the io_service.

Remove need to #define FD_SETSIZE on Win32.

Add detection of incorrect inclusion of WinSock.h.

Fix some SSL bugs. Add ability to customise the SSL password callback
function.

Set the reuse_address option by default on acceptors.

The macros FIONREAD and FIONBIO are not integer constants on all
platforms, and so cannot be used as template arguments. Make the
corresponding I/O control commands into proper classes, not templates.

Fixes to better support *BSD platforms.

Add support for buffer debugging, if the standard library supports
iterator debugging (as MSVC8's standard lib does).

Ensure the IOCP queue is drained correctly at shutdown.

Move basic_resolver and resolver service into the ip namespace.

Fix some issues found by the inspect tool.


[SVN r35833]
2006-11-04 07:14:10 +00:00