- Clarify ZMQ_LINGER, zmq_close (), zmq_term () relationship
- New socket options
- Clarify thread safety of sockets and migration between threads
- Other minor and spelling fixes
Signed-off-by: Martin Lucina <mato@kotelna.sk>
- Added a macro for checking clang compiler
- Moved basic compiler checks to a macro
- Added a macro for checking if compiler supports a flag
- Added --enable-debug flag
- Added a macro for running normal autoconf check with compiler flags
- Added a macro for checking for verbose flag for different compilers (-Wall)
- Added a macro for turning on strict standards compliance
- Added a macro for turning warnings to errors
- Added a macro for checking if compiler supports given pragma
- Most of the flags now go through checks if the compilers supports them
rather than enumerating different compilers
- Added DSO symbol visibility for sun compiler
- Enabled verbose mode for sun compiler
- Fixed build for ICC 12.x by adding -wd279 to size_t checks
- Removed pkg-config checks as those don't seem to be used anywhere
Signed-off-by: Mikko Koppanen <mkoppanen@php.net>
So far these were declared as C++ static functions which
was incorrect and caused warnings with SunStudio.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
On systems using GCC 4.0 or newer which support symbol visibility in shared
libraries, use -fvisibility=hidden and only export explict API functions
defined in zmq.cpp. We do not enable -fvisibility on MinGW since this uses a
separate mechanism (__declspec).
Signed-off-by: Martin Lucina <mato@kotelna.sk>
HP's version of STL doesn't allow for initialisation of basic_string
(blob_t) using NULL pointer, while SGI's implementation is OK with
that. Fixed.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
The patch tests that the C and C++ compilers actually exist
and work. autoconf seems to default to 'g++' when C++ compiler is not
found, which causes the following error (when the compiler isn't
there):
checking for uuid_generate in -luuid... no
configure: error: cannot link with -luuid, install uuid-dev.
The config.log contains the real error message "g++ command not found"
but the error message shown to the user is misleading.
Signed-off-by: Mikko Koppanen <mkoppanen@php.net>
I ran autoupdate on the configure.in, which generated most of the
patch attached. There is also a small manual fix in which removes the
warning "Remember to add LT_INIT to configure.in" which I assume is
because AC_PROG_LIBTOOL was called inside a macro.
Signed-off-by: Mikko Koppanen <mkoppanen@php.net>
Allows building without documentation even if asciidoc and xmlto are
installed. This eases up working with the build system because doc
generation take quite a while on repeated builds.
Signed-off-by: Mikko Koppanen <mkoppanen@php.net>
After long discussions in IRC we came to conclusion that there is no
elegant way to handle static builds with MinGW32. This patch sets
AC_DISABLE_STATIC by default on MinGW32 and Cygwin
Signed-off-by: Mikko Koppanen <mkoppanen@php.net>
MinGW32 defines __int64_t as long long, which causes the build to fail
unless -Wno-long-long is used. In addition the shutdown_stress test
isn't currently compatible with Win.
Signed-off-by: Mikko Koppanen <mkoppanen@php.net>
- RAND_bytes function resides in crypto library
- pollfd on AIX used 'reqevents' instead of events and 'retnevents'
instead of 'revents'
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
Added block boolean var to second process_commands() invocation for blocking sockets
instead of always using true. This prevents the process_commands() call from hanging
when a message is received with an empty queue after the call to xrecv() but
prior to the initial call to process_commands() invoked when ++ticks == inbound_poll_rate.
Signed-off-by: Marc Rossi <mrossi19@gmail.com>
For historical reasons queue to transfer commands between
threads was called 'signaler'. Given that it was used to
pass commands rather than signals it was renamed to 'mailbox',
see Erlang mailboxes.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
Threads were so far identified by integers called 'slots'.
This patch renames them to more comprehensible 'tid's (thread IDs).
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
If the socketpair used by signaler_t fills up, this can lead to deadlock.
This patch provides partial resolution by attempting to resize SO_SNDBUF on
the writer side, and if that fails we shall at least assert rather than
hang.
I've also refactored the signaler_t code to make the platform-dependent
parts clearer and have tested both the MSG_DONTWAIT and standard POSIX path
in recv.
The Win32 implementation currently does not implement resizing as I'm not
convinced that it's safe, but it will also assert like other platforms if
signaler_t::send() cannot succeed.
The OpenVMS implementation has been carried forward but is untested.
Signed-off-by: Martin Lucina <mato@kotelna.sk>
devpoll_t used this constant to determine how many events to
retrieve from the poller in one go. The implementation was
changed not to depend on this constant.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
INSTALL gets added in somewhat magically by automake, or not. Adding it into
Git ensures it's always included in the distribution.
Signed-off-by: Martin Lucina <mato@kotelna.sk>