- 27 4月, 2018 40 次提交
-
-
由 youngwolf 提交于
-
由 youngowlf 提交于
Fix race condition on member variable last_send_msg in st_tcp_socket_base. Optimize reconnecting mechanism. Enhance class st_timer. Rename st_connector_base and st_ssl_connector_base to st_client_socket_base and st_ssl_client_socket_base, the former is still available, but is just an alias.
-
由 youngwolf 提交于
Drop virtual function socket::is_closable.
-
由 youngwolf 提交于
Support object restoration (on server side). Re-implement heartbeat function, use user data instead of OOB. Refactor and optimize ssl object, now st_ssl_connector_base and st_ssl_server_socket_base are reuable. Not compatible with old versions, please note. See st_asio_wrapper.h for more details about this release.
-
由 youngowlf 提交于
-
由 youngwolf 提交于
-
由 youngwolf 提交于
Support asio 1.11.x
-
由 youngowlf 提交于
-
由 wolf 提交于
Sync doc. Version number keeps unchanged.
-
由 youngowlf 提交于
Support heartbeat (via OOB data), see ST_ASIO_HEARTBEAT_INTERVAL macro for more details. Support scatter-gather buffers when receiving messages, this feature needs modification of i_unpacker, you must explicitly define ST_ASIO_SCATTERED_RECV_BUFFER macro to open it, this is just for compatibility. Simplify lock-free mechanism. Optimize container insertion (use series of emplace functions instead). Demo test_client support alterable number of sending thread (before, it's a hard code 16). Fix bug: In extreme cases, messages may get starved in receive buffer and will not be dispatched until arrival of next message. Fix bug: In extreme cases, messages may get starved in send buffer and will not be sent until arrival of next message. Fix bug: Sometimes, st_connector_base cannot reconnect to the server after link broken. known issues: 1. heartbeat mechanism cannot work properly between windows (at least win-10) and Ubuntu (at least Ubuntu-16.04).
-
由 youngwolf 提交于
Compatible edition support c++0x (11, 14, 17, ...) features too. Monitor time consumptions for message packing and unpacking. Fix bug: pop_first_pending_send_msg and pop_first_pending_recv_msg cannot compile.
-
由 youngwolf 提交于
-
由 youngwolf 提交于
-
由 youngwolf 提交于
Simplify header files' dependence. Yield to Visual C++ 10.0 Add Visual C++ solution and project files (Visuall C++ 11.0 and 9.0).
-
由 youngwolf 提交于
Use ST_ASIO_DELAY_CLOSE instead of ST_ASIO_ENHANCED_STABILITY macro to control delay close duration, 0 is an equivalent of defining ST_ASIO_ENHANCED_STABILITY, other values keep the same meanings as before. Move st_socket::closing related logic to st_object. Make st_socket::id(uint_fast64_t) private to avoid changing IDs by users. Call close at the end of shutdown function, just for safety. Introduce lock-free mechanism for some appropriate logics (many requesters, only one can succeed, others will fail rather than wait). Remove all mutex (except mutex in st_object_pool, st_service_pump, lock_queue and st_udp_socket). Sharply simplified st_timer class.
-
由 youngwolf 提交于
Support non-lock queue, it's totally not thread safe and lock-free, it can improve IO throughput with particular business. Demonstrate how and when to use non-lock queue as the input and output message buffer. Queues (and their internal containers) used as input and output message buffer are now configurable (by macros or template arguments). New macros--ST_ASIO_INPUT_QUEUE, ST_ASIO_INPUT_CONTAINER, ST_ASIO_OUTPUT_QUEUE and ST_ASIO_OUTPUT_CONTAINER. In contrast to non_lock_queue, rename message_queue to lock_queue. Move container related classes and functions from st_asio_wrapper_base.h to st_asio_wrapper_container.h. Improve efficiency in scenarios of low throughput like pingpong test. Replaceable packer/unpacker now support replaceable_buffer (an alias of auto_buffer) and shared_buffer to be their message type. Move class statistic and obj_with_begin_time out of st_socket to reduce template tiers.
-
由 youngowlf 提交于
Optimize locks on msg sending and dispatching. Drop original congestion control and add a semi-automatic congestion control. Drop post_msg_buffer and corresponding functions (like post_msg()), timer (ascs::socket::TIMER_HANDLE_POST_BUFFER).
-
由 wolf 提交于
Make shutdown operation thread safe. Decouple object and container (for example, st_server_socket and st_server). Drop ssize_t definition for Visual C++. Version number keeps unchanged.
-
由 youngowlf 提交于
Add on_close() event, For more change logs, please refer to st_asio_wrapper.h
-
由 youngowlf 提交于
-
由 wolf 提交于
-
由 youngowlf 提交于
-
由 wolf 提交于
-
由 wolf 提交于
-
由 youngowlf 提交于
Split ext/st_asio_wrapper_net.h into ext/st_asio_wrapper_client.h, ext/st_asio_wrapper_server.h and ext/st_asio_wrapper_udp.h. Add virtual function st_server_base::on_accept_error, it controls whether to continue the acception or not when error occurred.
-
由 youngwolf-FreeBSD 提交于
-
由 wolf 提交于
st_socket will call on_msg again and again (asynchronously) for the same msg until receive buffer becomes available.
-
由 youngwolf 提交于
-
由 youngwolf 提交于
Added a new replaceable buffer shared_buffer.
-
由 youngwolf 提交于
Fix bug: the last msg will not be re-dispatched if on_msg_handle returned false until new msgs come in. Drop timer TIMER_SUSPEND_DISPATCH_MSG, it's useless. Send more msgs in one async_write call. Fix annotations.
-
由 youngowlf 提交于
Fix bug: the last msg will not be re-dispatched if on_msg_handle returned false until new msgs come in. Drop timer TIMER_SUSPEND_DISPATCH_MSG, it's useless.
-
由 youngowlf 提交于
-
由 youngwolf 提交于
Fix bug: the last msg will not be re-dispatched if on_msg_handle returned false until new msgs come in. Drop timer TIMER_SUSPEND_DISPATCH_MSG, it's useless.
-
由 youngwolf 提交于
-
由 youngwolf 提交于
-
由 youngwolf 提交于
-
由 youngwolf 提交于
-
由 youngwolf 提交于
Move packers and unpackers out of 'include' directory (now in 'ext' directory), they don't belong to st_asio_wrapper library. Add pingpong test. Add streaming unpacker to receive native data. Support non-copyable msgs. Make asio_server and test_client more appropriate for performance tunning.
-
由 youngwolf 提交于
-
由 youngwolf 提交于
-