1. 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
  2. 19 Aug, 2017 1 commit
  3. 18 Aug, 2017 1 commit
  4. 16 Aug, 2017 1 commit
  5. 31 Jul, 2017 1 commit
    • Brian Russell's avatar
      Add socket option BINDTODEVICE · b963542e
      Brian Russell authored
      Linux now supports Virtual Routing and Forwarding (VRF) as per:
      
      https://www.kernel.org/doc/Documentation/networking/vrf.txt
      
      In order for an application to bind or connect to a socket with an
      address in a VRF, they need to first bind the socket to the VRF device:
      
          setsockopt(sd, SOL_SOCKET, SO_BINDTODEVICE, dev, strlen(dev)+1);
      
      Note "dev" is the VRF device, eg. VRF "blue", rather than an interface
      enslaved to the VRF.
      
      Add a new socket option, ZMQ_BINDTODEVICE, to bind a socket to a device.
      In general, if a socket is bound to a device, eg. an interface, only
      packets received from that particular device are processed by the socket.
      
      If device is a VRF device, then subsequent binds/connects to that socket
      use addresses in the VRF routing table.
      b963542e
  6. 28 Jul, 2017 2 commits
  7. 14 Jun, 2017 1 commit
    • Iban Cereijo's avatar
      Problem: CMake evaluation fails with Mingw-w64 · d040dc18
      Iban Cereijo authored
      Solution: we can use 'CMAKE_SYSTEM_VERSION' instead of
      '${CMAKE_SYSTEM_VERSION}' for the 'if' clauses.
      
      CMake fails to evaluate condition when CMAKE_SYSTEM_VERSION is
      empty, which can happen with a default installation of Mingw-w64
      in Linux.
      d040dc18
  8. 20 May, 2017 1 commit
    • Tim Ebringer's avatar
      Suppress linker warning 4221 for MSVC · 293a1825
      Tim Ebringer authored
      Some #define switches cause the body of entire files to be omitted. This
      causes a linker warning on Visual Studio 2017, for example
      
          warning LNK4221: This object file does not define any previously
          undefined public symbols, so it will not be used by any link
          operation that consumes this library
      
      Since this is warning us about something that shouldn't be
      earth-shattering news, we add a linker flag to suppress this warning on
      MSVC builds.
      293a1825
  9. 18 May, 2017 1 commit
  10. 28 Apr, 2017 1 commit
  11. 24 Apr, 2017 1 commit
  12. 17 Apr, 2017 1 commit
    • RPGillespie6's avatar
      Add CMake Build Output Options · 69b2affe
      RPGillespie6 authored
      Add two new options to CMakeLists.txt:
      
      `BUILD_SHARED` - Whether or not to build the shared object (Default: ON)
      `BUILD_STATIC` - Whether or not to build the static archive (Default: ON)
      69b2affe
  13. 12 Apr, 2017 1 commit
  14. 05 Apr, 2017 2 commits
  15. 04 Apr, 2017 4 commits
  16. 12 Mar, 2017 1 commit
    • 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. 18 Feb, 2017 1 commit
  18. 27 Jan, 2017 1 commit
  19. 22 Jan, 2017 1 commit
  20. 21 Jan, 2017 1 commit
  21. 19 Jan, 2017 1 commit
  22. 12 Jan, 2017 1 commit
  23. 06 Jan, 2017 3 commits
  24. 31 Dec, 2016 2 commits
  25. 26 Dec, 2016 2 commits
  26. 01 Dec, 2016 1 commit
    • Luca Boccassi's avatar
      Problem: CMake build uses library version as the ABI version · abeaba15
      Luca Boccassi authored
      Solution: set SOVERSION in CMakeLists to match the SONAME generated
      by libtool so that there is no mismatch between the output of the
      *NIX build systems.
      
      Before:
      $ ls -l
      total 2696
      lrwxrwxrwx 1 luca luca      15 Dec  1 22:36 libzmq.so -> libzmq.so.4.2.0
      lrwxrwxrwx 1 luca luca      15 Dec  1 22:36 libzmq.so.4.2.0 -> libzmq.so.4.2.1
      -rwxr-xr-x 1 luca luca  906168 Dec  1 22:36 libzmq.so.4.2.1
      $ readelf -d libzmq.so.4.2.1 | grep SONAME
       0x000000000000000e (SONAME)    Library soname: [libzmq.so.4.2.0]
      
      After:
      $ ls -l
      total 2700
      lrwxrwxrwx 1 luca luca      15 Dec  1 22:31 libzmq.so -> libzmq.so.5.1.0
      -rwxr-xr-x 1 luca luca  906168 Dec  1 22:31 libzmq.so.4.2.1
      lrwxrwxrwx 1 luca luca      15 Dec  1 22:31 libzmq.so.5.1.0 -> libzmq.so.4.2.1
      $ readelf -d libzmq.so.4.2.1 | grep SONAME
       0x000000000000000e (SONAME)    Library soname: [libzmq.so.5.1.0]
      abeaba15
  27. 01 Nov, 2016 1 commit
  28. 27 Sep, 2016 2 commits
    • Luca Boccassi's avatar
      Problem: pkg-config Requires.private is broken · 06d810b4
      Luca Boccassi authored
      Solution: use only Libs.private to avoid breaking application builds.
      Even though Requires.private are supposed to be parsed only if
      pkg-config is called with --static, the --cflags parameter is enough
      to trigger the parsing, causing build failures for applications that
      do not (and should not) depend on libzmq's dependencies.
      06d810b4
    • Luca Boccassi's avatar
      Problem: pkgconfig file does not support static link · 6d941160
      Luca Boccassi authored
      Solution: add dependencies, if necessary, to the .private Libs and
      Requires field of the pkgconfig file at build time.
      This way pkg-config --static --libs libzmq will correctly print
      dependencies if they were used to build the static libzmq.a library.
      6d941160
  29. 21 Sep, 2016 2 commits