1. 27 4月, 2018 1 次提交
  2. 26 4月, 2018 22 次提交
    • Y
      1.2.6 release. · 7b42c4b5
      youngwolf 提交于
      Fix: Reconnectiong may happen in ascs::socket::reset, it's not a right behavior.
      Do reconnecting in client_socket_base::after_close rather in client_socket_base::on_close.
      7b42c4b5
    • Y
      1.2.5 release. · 4b5ad024
      youngowlf 提交于
      Fix:
      Support unmovable buffers (for example: a very short std::string).
      begin_time not inherited while accessing concurrent queue.
      Eliminate race condition in udp::socket_base.
      Eliminate race condition in demo file_client.
      Avoid division by zero error in demo file_client.
      4b5ad024
    • Y
      Fix UDP heartbeat. · 8b3a1c45
      youngwolf 提交于
      8b3a1c45
    • Y
      1.2.4 release. · fd6c9977
      youngwolf 提交于
      fd6c9977
    • Y
      1.2.3 release. · 01d43fe5
      youngwolf 提交于
      Support decreasing the number of service thread at runtime.
      Not support Visual C++ 11.0 (2012) any more, use st_asio_wrapper instead.
      Optimized and simplified auto_buffer, shared_buffer and ext::basic_buffer.
      Optimized class obj_with_begin_time.
      Not use sending buffer (send_msg_buffer) if possible.
      Reduced stopped() invocation (because it needs locks).
      Introduced asio::io_service::work (asio::executor_work_guard).
      i_server has been moved from ascs to ascs::tcp.
      Move all deprecated classes (connector_base, client_base, service_base) to alias.h
      Rename tcp::client_base to tcp::multi_client_base, ext::tcp::client to ext::tcp::multi_client, udp::service_base to udp::multi_service_base,
       ext::udp::service to ext::udp::multi_service. Old ones are still available, but have became alias.
      01d43fe5
    • Y
      1.2.2 release. · 42cfca74
      youngwolf 提交于
      Support unstripped message.
      Add two demos for concurrent test.
      define ASIO_NO_DEPRECATED macro by default in VC++ projects.
      Truly support asio 1.11 (don't use deprecated functions and classes any more), and of course, asio 1.10 will be supported too.
      Use mutable_buffer and const_buffer instead of mutable_buffers_1 and const_buffers_1 if possible.
      42cfca74
    • Y
      1.2.1 release. · e6f90e40
      youngowlf 提交于
      Fix race condition on member variable last_send_msg in tcp::socket_base.
      Optimize reconnecting mechanism.
      Enhance class timer.
      Rename connector_base and ssl::connector_base to client_socket_base and ssl::client_socket_base, the former is still available, but is just an alias.
      e6f90e40
    • W
      Make reconnecting after all async invocations (like object reusing or restoration). · 73513d5c
      wolf 提交于
      Drop virtual function socket::is_closable.
      73513d5c
    • Y
      1.2.0 release. · 75fa186f
      youngwolf 提交于
      Support object restoration (on server side).
      Re-implement heartbeat function, use user data instead of OOB.
      Refactor and optimize ssl object, now ssl::commector_base and ssl::server_socket_base are reuable.
      
      Not compatible with old versions, please note.
      See config.h for more details about this release.
      75fa186f
    • Y
      prefix_suffix packer and unpacker satisfy asio 1.11 · e2e5d4b7
      youngwolf 提交于
      e2e5d4b7
    • Y
      Continue last commit. · a68f14ea
      youngwolf 提交于
      a68f14ea
    • Y
      Continue last commit. · 5d2c7d2d
      youngwolf 提交于
      5d2c7d2d
    • Y
      Make echo_client easier to use. · 056685a2
      youngwolf 提交于
      Support asio 1.11.x
      056685a2
    • Y
      Make the s variable of ascs::list volatile. · 7fbe77a4
      youngwolf 提交于
      7fbe77a4
    • W
      Disable heartbeat by default. · 7bf5fe20
      wolf 提交于
      Sync doc.
      Version number keeps unchanged.
      7bf5fe20
    • Y
      1.1.5 release. · 6251fb2d
      youngowlf 提交于
      Support heartbeat (via OOB data), see ASCS_HEARTBEAT_INTERVAL macro for more details.
      Support scatter-gather buffers when receiving messages, this feature needs modification of i_unpacker, you must explicitly define
       ASCS_SCATTERED_RECV_BUFFER macro to open it, this is just for compatibility.
      Simplify lock-free mechanism and use std::atomic_flag instead of std::atomic_size_t.
      Optimize container insertion (use series of emplace functions instead).
      Demo echo_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, 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).
      6251fb2d
    • Y
      1.1.4 release. · e3a9f3f0
      youngwolf 提交于
      Drop unnecessary macro definition (ASIO_HAS_STD_CHRONO).
      Simplify header files' dependence.
      Add Visual C++ solution and project files (Visuall C++ 14.0).
      Monitor time consumptions for message packing and unpacking.
      Fix bug: pop_first_pending_send_msg and pop_first_pending_recv_msg cannot work.
      e3a9f3f0
    • Y
      1.1.3 release. · 8356dc4b
      youngwolf 提交于
      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 object_pool, service_pump, lock_queue and udp::socket).
      Sharply simplified timer class.
      8356dc4b
    • Y
      1.1.2 release. · afbf6243
      youngwolf 提交于
      Fix bug: ascs::list cannot be moved properly via moving constructor.
      Use ASCS_DELAY_CLOSE instead of ASCS_ENHANCED_STABILITY macro to control delay close duration,
       0 is an equivalent of defining ASCS_ENHANCED_STABILITY, other values keep the same meanings as before.
      Move ascs::socket::closing related logic to ascs::object.
      Make ascs::socket::id(uint_fast64_t) private to avoid changing IDs by users.
      Call close at the end of shutdown function, just for safety.
      Add move capture in lambda.
      Optimize lambda expressions.
      afbf6243
    • Y
      1.1.1 release. · 2aabeebb
      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--ASCS_INPUT_QUEUE, ASCS_INPUT_CONTAINER, ASCS_OUTPUT_QUEUE and ASCS_OUTPUT_CONTAINER.
      Drop macro ASCS_USE_CONCURRENT_QUEUE, rename macro ASCS_USE_CONCURRE to ASCS_HAS_CONCURRENT_QUEUE.
      In contrast to non_lock_queue, split message_queue into lock_queue and lock_free_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 ascs::socket to reduce template tiers.
      2aabeebb
    • Y
      1.1.0 release. · 232247da
      youngowlf 提交于
      Support concurrent queue (https://github.com/cameron314/concurrentqueue), it's lock-free.
      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).
      232247da
    • Y
      Support concurrent queue (https://github.com/cameron314/concurrentqueue), it's lock-free. · 66308c58
      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).
      66308c58
  3. 04 4月, 2017 1 次提交
  4. 15 2月, 2017 1 次提交
  5. 14 10月, 2016 1 次提交
  6. 28 9月, 2016 2 次提交
    • Y
      Fix typo. · 90fc5d45
      youngowlf 提交于
      90fc5d45
    • W
      Sync doc. · eb2d1827
      wolf 提交于
      ext directory refactoring.
      Add ascs::ext::tcp, ascs::ext::udp and ascs::ext::ssl name spaces.
      Make timer_info's member variables mutable (except the id), so we can change them in std::set.
      Make shutdown operation thread safe.
      Drop macro ASCS_OBSOLETED_OBJECT_LIFE_TIME and ASCS_THIS, and ssize_t definition for Visual C++.
      Fix bug: repeatedly join the same service thread while stopping service_pump if you restarted it.
      Version number keeps unchanged.
      eb2d1827
  7. 23 9月, 2016 1 次提交
    • Y
      1.0.0 release. · bbb7a3ff
      youngwolf 提交于
      Re-base onto st_asio_wrapper 1.2.0
      Add class std_list(a substitute of std::list before gcc 5.1), whose size() function has O(1) complexity.
      bbb7a3ff
  8. 17 9月, 2016 1 次提交
    • Y
      ascs first release, version 1.0.0 · 301e46b6
      youngwolf 提交于
      Strip boost (Based on st_asio_wrapper 1.1.3).
      Need c++14, if your compiler detected duplicated 'shared_mutex' definition, please define ASCS_HAS_STD_SHARED_MUTEX macro.
      Need to define ASIO_STANDALONE and ASIO_HAS_STD_CHRONO macros.
      Collect all macros together.
      301e46b6
  9. 13 9月, 2016 2 次提交
  10. 12 9月, 2016 6 次提交