1. 13 Jun, 2012 1 commit
  2. 12 Jun, 2012 2 commits
  3. 11 Jun, 2012 1 commit
  4. 05 Jun, 2012 1 commit
  5. 04 May, 2012 1 commit
  6. 21 Apr, 2012 1 commit
    • Sergey KHripchenko's avatar
      fixes for zmq_unbind() / zmq_disconnect() usage corner cases · 057fab09
      Sergey KHripchenko authored
      1. when we call zmq_bind()/zmq_connect() to create endpoint
      we send ourselfs(through launch_child()) command to process_own(endpoint)
      (and add it to own_t::owned)
      in the application thread we could call zmq_unbind() / zmq_disconnect() _BEFORE_
      we run process_own() in ZMQ thread and in this situation we will be unable to find it in
      own_t::owned. in other words own_t::owned.find(endpoint) will not be deleted but it will be deleted from
      socket_base_t::endpoints.
      
      2. when you zmq_unbind() the lisnening TCP/IPC socket was terminated only in destructor...
      so the whole ZMQ_LINGER time listening TCP/IPC socket was able to accept() new connections
      but unable to handle them.
      
      this all geting even worse since unfortunately zmq has a bug and '*_listener_t' object not terminated
      untill the socket's zmq_close().
      AT LEAST FOR PUSH SOCKETS.
      Everything is ok for SUB sockets.
      
      Easy to reproduce without my fix:
      
      zmq_socket(PUSH)
      zmq_bind(tcp);
      // connect to  it from PULL socket
      zmq_unbind(tcp);
      
      sleep(forever)
      
      // netstat -anp | grep 'tcp listening socket'
      
      With my fix you could see that after zmq_unbind(tcp) all previously connected tcp sessions
      will not be finished untill the zmq_close(socket) regardless of ZMQ_LINGER value.
      
      (*_listener_t terminates all owned session_base_t(connect=false) and they call pipe_t::terminate()
      which in turn should call session_base_t::terminated() but this never happens)
      057fab09
  7. 18 Apr, 2012 1 commit
  8. 01 Mar, 2012 1 commit
  9. 18 Feb, 2012 1 commit
  10. 17 Feb, 2012 1 commit
  11. 16 Feb, 2012 1 commit
  12. 14 Feb, 2012 1 commit
  13. 11 Feb, 2012 1 commit
  14. 08 Feb, 2012 1 commit
  15. 01 Nov, 2011 1 commit
  16. 31 Oct, 2011 1 commit
  17. 15 Sep, 2011 1 commit
  18. 02 Sep, 2011 1 commit
  19. 18 Aug, 2011 1 commit
  20. 16 Aug, 2011 1 commit
  21. 28 Jul, 2011 4 commits
  22. 26 Jul, 2011 1 commit
  23. 25 Jul, 2011 1 commit
  24. 21 Apr, 2011 1 commit
  25. 15 Apr, 2011 1 commit
  26. 16 Mar, 2011 1 commit
  27. 02 Mar, 2011 1 commit
  28. 13 Dec, 2010 1 commit
  29. 30 Oct, 2010 1 commit
  30. 17 Oct, 2010 1 commit
  31. 29 Jun, 2010 1 commit
  32. 12 May, 2010 1 commit
  33. 19 Mar, 2010 1 commit
  34. 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
  35. 03 Mar, 2010 1 commit
  36. 18 Feb, 2010 1 commit