1. 09 Nov, 2012 1 commit
  2. 27 Aug, 2012 1 commit
    • Arthur O'Dwyer's avatar
      Silence all "unused parameter" warnings from Clang. · 3b984d40
      Arthur O'Dwyer authored
      Compiling without warnings is a good goal, because it makes
      new warnings (which probably indicate bugs) stand out rather
      than getting lost in the spam.
      
      My fixes fall into two categories:
      
          - Adding (void) casts of unused parameters, where their
            unusedness seems like a TODO (or in some cases a bug?).
      
          - Removing parameter names altogether, where the function
            is clearly a stub that will never use its parameters.
      
      Should be no change in behavior.
      3b984d40
  3. 12 Jun, 2012 2 commits
    • Ian Barber's avatar
      Allow blocking while connect() is completing · e5904e63
      Ian Barber authored
      This patch, salvaged from a trainwreck accidental merge earlier, adds a
      new sockopt, ZMQ_DELAY_ATTACH_ON_CONNECT which prevents a end point
      being available to push messages to until it has fully connected, making
      connect work more like bind. This also applies to reconnecting sockets,
      which may cause message loss of in-queue messages, so it is sensible to
      use this in conjunction with a low HWM and potentially an alternative
      acknowledgement path.
      
      Notes on most of the individual commits can be found the repository log.
      e5904e63
    • Ian Barber's avatar
      Revert "After speaking with Ben Gray and the discussion on the mailing list,… · 95cbad38
      Ian Barber authored
      Revert "After speaking with Ben Gray and the discussion on the mailing list, this is an attempt to create a sockopt to allow connecting pipes to not immediately be available for traffic. The problem is in a PUSH to many PULL situation, where there is a connect to a PULL which is not there. This connect will immediately create a pipe (unlike bind), and traffic will be load balanced to that pipe. This means if there is a persistently unavailable end point then the traffic will queue until HWM is hit, and older messages will be lost."
      
      This reverts commit fe3fb419.
      95cbad38
  4. 01 Jun, 2012 1 commit
    • Ian Barber's avatar
      After speaking with Ben Gray and the discussion on the mailing list, this is an… · fe3fb419
      Ian Barber authored
      After speaking with Ben Gray and the discussion on the mailing list, this is an attempt to create a sockopt to allow connecting pipes to not immediately be available for traffic. The problem is in a PUSH to many PULL situation, where there is a connect to a PULL which is not there. This connect will immediately create a pipe (unlike bind), and traffic will be load balanced to that pipe. This means if there is a persistently unavailable end point then the traffic will queue until HWM is hit, and older messages will be lost.
      
      This patch adds a sockopt ZMQ_DELAY_ATTACH_ON_CONNECT, which if set to 1 will attempt to preempt this behavior. It does this by extending the use of the session_base to include in the outbound as well as the inbound pipe, and only associates the pipe with the socket once it receives the connected callback via a process_attach message. This works, and a test has been added to show so, but may introduce unexpected complications. The shutdown logic in this class has become marginally more awkward because of this, requiring the session to serve as the sink for both pipes if shutdown occurs with a still-connecting pipe in place. It is also possible there could be issues around flushing the messages, but as I could not directly think how to create such an issue I have not written any code with regards to that.
      
      The documentation has been updated to reflect the change, but please do check over the code and test and review.
      fe3fb419
  5. 31 May, 2012 2 commits
  6. 28 May, 2012 1 commit
  7. 28 Mar, 2012 1 commit
  8. 15 Feb, 2012 1 commit
  9. 10 Feb, 2012 1 commit
  10. 01 Nov, 2011 2 commits
  11. 31 Oct, 2011 1 commit
  12. 23 Jun, 2011 1 commit
  13. 20 Jun, 2011 1 commit
  14. 23 May, 2011 1 commit
  15. 22 May, 2011 1 commit
    • Martin Sustrik's avatar
      Introduces bi-directional pipes · acf0b0e5
      Martin Sustrik authored
      So far, there was a pair of unidirectional pipes between a socket
      and a session (or an inproc peer). This resulted in complex
      problems with half-closed states and tracking which inpipe
      corresponds to which outpipe.
      
      This patch doesn't add any functionality in itself, but is
      essential for further work on features like subscription
      forwarding.
      Signed-off-by: 's avatarMartin Sustrik <sustrik@250bpm.com>
      acf0b0e5
  16. 15 May, 2011 1 commit
  17. 21 Apr, 2011 1 commit
  18. 20 Mar, 2011 1 commit
  19. 02 Mar, 2011 1 commit
  20. 15 Dec, 2010 1 commit
  21. 30 Oct, 2010 1 commit
  22. 18 Sep, 2010 2 commits
  23. 10 Sep, 2010 1 commit
  24. 07 Sep, 2010 1 commit
  25. 01 Sep, 2010 1 commit
  26. 25 Aug, 2010 2 commits
    • Martin Sustrik's avatar
      I/O object hierarchy implemented · d13933bc
      Martin Sustrik authored
      d13933bc
    • Martin Sustrik's avatar
      WIP: Socket migration between threads, new zmq_close() semantics · 05d90849
      Martin Sustrik authored
      Sockets may now be migrated between OS threads; sockets may not be used by
      more than one thread at any time. To migrate a socket to another thread the
      caller must ensure that a full memory barrier is called before using the
      socket from the target thread.
      
      The new zmq_close() semantics implement the behaviour discussed at:
      
      http://lists.zeromq.org/pipermail/zeromq-dev/2010-July/004244.html
      
      Specifically, zmq_close() is now deterministic and while it still returns
      immediately, it does not discard any data that may still be queued for
      sending. Further, zmq_term() will now block until all outstanding data has
      been sent.
      
      TODO: Many bugs have been introduced, needs testing. Further, SO_LINGER or
      an equivalent mechanism (possibly a configurable timeout to zmq_term())
      needs to be implemented.
      05d90849
  27. 27 Mar, 2010 2 commits
  28. 13 Mar, 2010 1 commit
  29. 12 Mar, 2010 1 commit
    • Martin Hurton's avatar
      Implement flow control · 61ee6fae
      Martin Hurton authored
      This commit introduces the necessary changes necessary
      for implementing flow control. None of the socket types
      implements the flow control yet. The code will crash when
      the flow control is enabled and the thw lwm is reached.
      
      The following commits will add flow-control support for
      individual socket types.
      61ee6fae
  30. 11 Mar, 2010 1 commit
    • Martin Lucina's avatar
      Restructure language bindings · 27e2d084
      Martin Lucina authored
      C and C++ headers moved from bindings/ to include/, bindings/ removed
      --with-c and --with-cpp options to configure removed, C and C++ now built
      and installed by default
      27e2d084
  31. 10 Feb, 2010 1 commit
  32. 05 Jan, 2010 1 commit
  33. 15 Dec, 2009 1 commit