1. 18 May, 2018 1 commit
  2. 13 May, 2018 1 commit
  3. 05 Mar, 2018 1 commit
    • Stefan Kaes's avatar
      Problem: enormous memory increase due to zero copy decoding · fcbd2a57
      Stefan Kaes authored
      The zero copy decoding strategy implemented for 4.2.0 can lead to a large
      increase of main memory usage in some cases (I have seen one program go up to
      40G from 10G after upgrading from 4.1.4). This commit adds a new option to
      contexts, called ZMQ_ZERO_COPY_RECV, which allows one to switch to the old
      decoding strategy.
      fcbd2a57
  4. 11 Feb, 2018 1 commit
  5. 02 Feb, 2018 1 commit
  6. 31 Jan, 2018 1 commit
  7. 25 Oct, 2017 1 commit
    • f18m's avatar
      Change ZMQ_THREAD_AFFINITY to… · 2aa0e6fd
      f18m authored
      Change ZMQ_THREAD_AFFINITY to ZMQ_THREAD_AFFINITY_CPU_ADD/ZMQ_THREAD_AFFINITY_CPU_REMOVE. Avoid prefix thread names when no prefix was set.
      2aa0e6fd
  8. 22 Oct, 2017 1 commit
  9. 17 Oct, 2017 1 commit
  10. 16 Oct, 2017 1 commit
    • f18m's avatar
      Background threads enhancements (#2778) · bfbb4ff2
      f18m authored
      * Background thread scheduling 
      
      - add ZMQ_THREAD_AFFINITY ctx option; set all thread scheduling options
      from the context of the secondary thread instead of using the main
      process thread context!
      - change ZMQ_THREAD_PRIORITY to support setting NICE of the background
      thread when using SCHED_OTHER
      bfbb4ff2
  11. 19 Sep, 2017 1 commit
  12. 07 Sep, 2017 1 commit
  13. 06 Sep, 2017 1 commit
  14. 28 Jul, 2017 1 commit
    • Luca Boccassi's avatar
      Problem: fd leak in tweetnacl with one ctx per thread · e015a0f8
      Luca Boccassi authored
      Solution: add a crypto [de-]initialiser, refcounted and serialised
      through critical sections.
      This is necessary as utility APIs such as zmq_curve_keypair also
      call into the sodium/tweetnacl libraries and need the initialisation
      outside of the zmq context.
      Also the libsodium documentation explicitly says that sodium_init
      must not be called concurrently from multiple threads, which could
      have happened until now. Also the randombytes_close function does
      not appear to be thread safe either.
      This change guarantees that the library is initialised only once at
      any given time across the whole program.
      Fixes #2632
      e015a0f8
  15. 17 May, 2017 1 commit
    • rkfg's avatar
      Problem: abort at socket creation on Android with jzmq · 72b4b683
      rkfg authored
      Solution: don't set thread name on Android
      
      Setting a thread name on Android may fail with "permission
      denied" error and abort the process due to failed assertion.
      Tested on Android 5 and 6 (two phones).
      Strangely enough, it only happens on signed APKs and is fine
      in debug. Using JeroMQ is not an option as we need TCP keepalive
      settings and authentication which JeroMQ doesn't support.
      72b4b683
  16. 12 Mar, 2017 2 commits
    • Luca Boccassi's avatar
      Problem: thread name is redundant · d7aceef2
      Luca Boccassi authored
      Solution: call it simply "ZMQ background" instead of "ZMQ b/g thread"
      d7aceef2
    • Luca Boccassi's avatar
      Problem: ZMQ background threads are unnamed · 3ab4796c
      Luca Boccassi authored
      Solution: use pthread API to set the name. For now call every thread
      "ZMQ b/g thread". Would be nice to number the I/O threads and name
      explicitly the reaper thread, but in reality a bit of internal API
      churn would be necessary, so perhaps it's not worth it.
      This is useful when debugging a process with many threads.
      3ab4796c
  17. 20 Nov, 2016 1 commit
  18. 24 Sep, 2016 2 commits
  19. 17 Sep, 2016 1 commit
  20. 31 Jul, 2016 2 commits
  21. 18 May, 2016 1 commit
  22. 14 May, 2016 1 commit
  23. 30 Mar, 2016 2 commits
  24. 29 Mar, 2016 2 commits
  25. 18 Feb, 2016 1 commit
  26. 11 Feb, 2016 2 commits
    • Pieter Hintjens's avatar
      Problem: tweetnacl sources are a mess · f8ed793f
      Pieter Hintjens authored
      - they have no copyright / license statement
      - they are in some randomish directory structure
      - they are a mix of postable and non-portable files
      - they do not conform to conditional compile environment
      
      Overall, it makes it rather more work than needed, in build scripts.
      
      Solution: clean up tweetnacl sauce.
      
      - merged code into single tweetnacl.c and .h
      - standard copyright header, DJB to AUTHORS
      - moved into src/ along with all other source files
      - all system and conditional compilation hidden in these files
      - thus, they can be compiled and packaged in all cases
      - ZMQ_USE_TWEETNACL is set when we're using built-in tweetnacl
      - HAVE_LIBSODIUM is set when we're using external libsodium
      f8ed793f
    • Pieter Hintjens's avatar
      Problem: use of libsodium vs. tweetnacl is confused · b49a6041
      Pieter Hintjens authored
      It's unclear which we need and in the source code, conditional code
      treats tweetnacl as a subclass of libsodium, which is inaccurate.
      
      Solution: redesign the configure/cmake API for this:
      
      * tweetnacl is present by default and cannot be enabled
      * libsodium can be enabled using --with-libsodium, which replaces
        the built-in tweetnacl
      * CURVE encryption can be disabled entirely using --enable-curve=no
      
      The macros we define in platform.hpp are:
      
          ZMQ_HAVE_CURVE    1        //  When CURVE is enabled
          HAVE_LIBSODIUM    1        //  When we are using libsodium
          HAVE_TWEETNACL    1        //  When we're using tweetnacl (default)
      
      As of this patch, the default build of libzmq always has CURVE
      security, and always uses tweetnacl.
      b49a6041
  27. 09 Feb, 2016 1 commit
    • Pieter Hintjens's avatar
      Problem: test_large_msg kills my system temporarily · 62c66ae7
      Pieter Hintjens authored
      And I'm on a reasonably sized laptop. I think allocating INT_MAX
      memory is dangerous in a test case.
      
      Solution: expose this as a context option. I've used ZMQ_MAX_MSGSZ
      and documented it and implemented the API. However I don't know how
      to get the parent context for a socket, so the code in zmq.cpp is
      still unfinished.
      62c66ae7
  28. 01 Feb, 2016 3 commits
  29. 28 Jan, 2016 1 commit
  30. 08 Dec, 2015 1 commit
    • Ilya Kulakov's avatar
      Add the VMCI transport. · 68b13fbd
      Ilya Kulakov authored
      VMCI transport allows fast communication between the Host
      and a virtual machine, between virtual machines on the same host,
      and within a virtual machine (like IPC).
      
      It requires VMware to be installed on the host and Guest Additions
      to be installed on a guest.
      68b13fbd
  31. 21 Aug, 2015 2 commits