1. 23 Jun, 2018 1 commit
  2. 28 May, 2018 1 commit
  3. 27 May, 2018 1 commit
  4. 26 May, 2018 1 commit
  5. 02 Feb, 2018 1 commit
  6. 19 Sep, 2017 1 commit
  7. 07 Sep, 2017 1 commit
  8. 06 Sep, 2017 1 commit
  9. 30 Mar, 2017 1 commit
  10. 29 Mar, 2017 1 commit
  11. 26 Mar, 2017 1 commit
  12. 25 Mar, 2017 1 commit
  13. 04 May, 2016 1 commit
  14. 29 Jan, 2016 4 commits
  15. 28 Jan, 2016 2 commits
  16. 19 Jan, 2016 1 commit
  17. 11 Sep, 2015 1 commit
  18. 23 Jun, 2015 1 commit
  19. 14 Jun, 2015 1 commit
    • Jens Auer's avatar
      Fixed wrong handling of shared messages · 51cb57e2
      Jens Auer authored
      The shared reference count was not shared but copied. msg_t cannot
      store the refcnt itsef but has to store a pointer to an externally
      allocated (shared) refcnter. The changes to lmsg are reverted to
      use content_t again. Howver, this introduces an allocation in v2_decoder
      when creating the message which can be avoided. When allocating the reception
      buffer, space is allocated for the maximum number of reference counts
      (8192 / max_vsm_size = 8192/64 = 128 zmq:atomic_counter objects). This
      increases the buffer by 128*sizeof(atomic_counter) = 128*4 = 512 bytes only.
      When creating a message, the refcnt member is set to the address of one of the
      pre-allocated atomic_counter_t objects. To do so, a new msg_t type zcmsg
      is introduced because msg::copy must discriminate between the message types
      when releasing memory.
      51cb57e2
  20. 03 Jun, 2015 1 commit
    • Jens Auer's avatar
      Allocation-free msg::init_data · 611e96c7
      Jens Auer authored
      With a msg_t size of 64 bytes, it becomes possible to embedd the content_t's members
      struct for large messages directly in the msg_t. This saves the dynamic allocation
      of content_t obejcts when using msg_t::init_data.
      
      content_t contains a zmq::atomic_counter_t object which is not a POD in C++98
      and thus it cannot be used as a member of the union u. To bypass this, C++11
      is used which has relaxed rules for POD and atomic_counter is a C++11-POD. An
      alternative would have been to make atomic_counter a classical POD by removing
      constructors and all private member functions, i.e. have a struct and free functions
      to manipulate it.
      
      A new msg_t::init function is added which decides to either to copy the data for size<64 bytes
      or use msg_t::init_data to do zero-copy initialization.
      611e96c7
  21. 02 Jun, 2015 1 commit
  22. 01 Feb, 2015 1 commit
  23. 22 Jan, 2015 1 commit
  24. 10 Jan, 2015 1 commit
    • Thomas Rodgers's avatar
      Increase size of zmq_msg_t to 64 bytes · 90194036
      Thomas Rodgers authored
      Increasing it would have at least two benefits -
      
      * More messages would be 'VSM' messages, so it would reduce allocation
      overhead a bit.
      * Remove any chance of false sharing of things that are, by design,
      pushed by value onto a ypipe_t<msg_t> which is shared between two threads.
      
      The only downside I see is slightly increased memory consumption on memory
      constrained applications.
      
      - Full discussion of this rationale is part of issue #1295
      90194036
  25. 13 Aug, 2014 1 commit
  26. 03 May, 2014 1 commit
  27. 30 Apr, 2014 1 commit
    • Martin Hurton's avatar
      Define i_properties interface · 19c62b93
      Martin Hurton authored
      - copy and move message operations are updated to maintain proper
        reference count of properties object
      - zmq_msg_gets updated to use i_properties interface to fetch property
        value
      - setter/getter added to msg_t class
      19c62b93
  28. 29 Apr, 2014 1 commit
  29. 12 Jan, 2014 1 commit
  30. 08 Jan, 2014 1 commit
  31. 07 Jan, 2014 1 commit
  32. 06 Jan, 2014 1 commit
  33. 02 Jan, 2014 1 commit
  34. 04 Sep, 2013 1 commit
    • Pieter Hintjens's avatar
      Updated libzmq to match RFC 23, 24, 25, 26 · 28b0a5fa
      Pieter Hintjens authored
      * Command names changed from null terminated to length-specified
      * Command frames use the correct flag (bit 2)
      * test_stream acts as test case for command frames
      * Some code cleanups
      28b0a5fa
  35. 19 Aug, 2013 2 commits