| Commit message (Collapse) | Author | Age |
| |
|
|
| |
(#1591)
|
| |
|
|
| |
gcc 4.8.5 ). (#1587)
|
| |
|
|
|
|
|
| |
This introduces a new API, nng_aio_busy(), that can be used
to query the status of the aio without blocking.
Some minor documentation fixes are included.
|
| |
|
|
| |
OSX < 10.12)
|
| |
|
|
|
| |
Also this fixes problems with uninitialized socket names, and the
socket name stat not being adjusted correctly when set via API.
|
| |
|
|
|
|
| |
This takes one less parameter, and is simpler. It will let us
reclaim the aio_prov_extra data space as well, so that we can
use it for other purposes.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
This should give significant performance boosts to anyone using this
protocol. Buffering on both the send and receive side is supported,
with a default buffer size of 16 messages. This should help provide
a reasonable default case for most users.
While here updated the test for bus to much more complete
NUTS style test framework, with increased coverage.
|
| |
|
|
|
|
| |
This function is like nng_device(), but runs asynchronously.
Also, this fixes #1503 nng_device causes nng_close to blocking
|
| |
|
|
|
| |
This makes these functions entirely bullet proof, and eliminates
yet more error handling cases.
|
| |
|
|
|
| |
This allows us to make nni_lmq_init() non-failing. (Although
the buffer size requested at initialization might not be granted.)
|
| | |
|
| |
|
|
|
| |
This eliminates more failure paths, and brings us still closer
to eliminating the possibility of failure during socket init.
|
| | |
|
| |
|
|
| |
closes #1553
|
| |
|
|
|
| |
Note that one of these warning is a real bug that would prevent
TLS from functioning properly on Windows.
|
| | |
|
| |
|
|
|
|
|
|
| |
This should help greatly with performance on older systems such
as CentOS 7 and GCC 4.8. Though, such folks really should update
to newer compilers. Folks running version of GCC earlier than 4.7
will still pay a rather significant performance penalty, as they
still implement atomics with a global mutex.
|
| |
|
|
|
|
|
|
| |
* use correct LONG type for nni_atomic_flag on win32
* use InterlockExchangeAdd for nni_atomic_get_bool
- this is equivelent to InterlockAdd for the purposes of this call (since it is adding 0)
- this allows the code to compile on 32bit windows
|
| | |
|
| |
|
|
| |
This also arranges to clean up the maps at nng_fini time.
|
| | |
|
| |
|
|
|
|
| |
This eliminates some run-time initialization, moving it to compile time.
Additional follow up work will expand on this to simplify initialization
and reduce the need for certain locks.
|
| |
|
|
|
| |
This is initially used for TLS to make loading the engine pointer
faster, eliminating a much more expensive lock operation.
|
| | |
|
| |
|
|
|
|
| |
(Note that this includes some incorrect formatting due to an apparent
bug in clang-format 13. Hopefully they'll fix it later, but for now
I'm preserving the bad whitespace.)
|
| |
|
|
| |
fixes #1535 Desire nng_ctx_sendmsg and nng_ctx_recvmsg
|
| | |
|
| |
|
|
|
|
|
| |
This makes CLOCK_MONOTONIC the default (as it should have been)
for platforms that have it defined, except for Apple platforms which lack
support for using anything other than the real time clock with condition
variables. (And unfortunately silently ignore attempts to do otherwise.)
|
| |
|
|
|
| |
When building with PAIR and PUBSUB protocols disabled, the perf tools fail to compile.
This makes some minor tweaks to correct that
|
| | |
|
| |
|
|
| |
Change all shebangs to use '#!/usr/bin/env bash'.
This increases portability to platforms which do not cohere to the FHS.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
This eliminates several mutex operations done each time a pipe
is created or destroyed. For large scale systems this should
reduce overall pressure on the memory subsystem, and scale better
as many threads are coming and going.
This also reduces the overall size of nni_pipe -- on Linux by
36 bytes typically.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
Also, remove an extraneous initialization call.
|
| |
|
|
|
|
| |
There were several problems with the array implementation, both
from performance and from correctness. This corrects those errors
(hopefully) and restores the expiration lists as linked lists.
|
| | |
|
| | |
|
| |
|
|
|
| |
Nothing is using this, but it adds complexity and also requires
additional lock activity each time a socket is opened.
|
| |
|
|
|
|
|
| |
Originally the idea was to better support having the transports
be separate loadable modules. This isn't needed for the builtin
transports, so we make the explicit initialization of them
deprecated, and document it as such.
|
| | |
|