| Commit message (Collapse) | Author | Age |
| | |
|
| |
|
|
|
|
| |
These are new functions that replace `NNG_OPT_SUBSCRIBE` and
`NNG_OPT_UNSUBSCRIBE`. They are provided here as a transition
aid before those options are removed in NNG 2.0.
|
| |
|
|
|
|
|
|
|
|
| |
These functions were added in the main branch for NNG 2.0, and
we add them here to facilitate converting any code that happened
to use the options (`NNG_OPT_PROTO`, `NNG_OPT_PROTONAME`,
`NNG_OPT_PEER`, `NNG_OPT_PEERNAME`, and `NNG_OPT_RAW`.
Its unlikely that many applications need this, but providing these
as a transition aid may help applications start adopting new APIs now.
|
| | |
|
| |
|
|
|
| |
This also adds a HUGE test for REP using socket so that we can
discriminate failures that might exist using sockets instead of inproc.
|
| | |
|
| |
|
|
|
|
|
|
|
| |
This includes a manual page documenting the entire set of
functions in one step. The hash is 64-bit based for now, to
be maximally flexible. An internal 32-bit convenience for the
common internal use is also provided (not public).
The public API includes a test suite.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This eliminates the req protocols use of nni_timer (and setting
a single timer node per request. This was problematic because it
devolves into O(n^2) as we wind up inserting timer nodes and having
to scan the list for the timer node.
The solution is to use a single scan - stop worrying about insertion,
but instead use a coarse granularity timer (defaults to 1 second)
for retries. Then do the O(n) scan just once per interval.
A new option, NNG_OPT_REQ_RESENDTICK, can be used to change the tick
interval for cases (like unit tests) where more fine grained timing
is required.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Credit goes to Wu Xuan (@willwu1217) for diagnosing and proposing
a fix as part of #1695. This approach takes a revised approach
to avoid adding extra memory, and it also is slightly faster as we
do not need to update both pointers in the linked list, by reusing
the reap node.
As part of this a new internal API, nni_aio_completions, is introduced.
In all likelihood we will be able to use this to solve some similar
crashes in other areas of the code.
|
| |
|
|
|
|
|
| |
In some places, we use ifdef, and others if.
This normalizes for always using ifdef, so we can compile when
this macro is not defined.
|
| |
|
|
| |
This function needs to be pretty much identical between PAIR v0 and
v1, it was missing just the call to release the pollable resources.
|
| |
|
|
|
|
|
| |
None of these changes are actual security bugs, but GitHub's
scanner reports false positives at Critical severity for them.
(There are a number of complaints from that scanner, many of
which we do not necessarily agree with.)
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
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 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.
|
| | |
|
| |
|
|
| |
fixes #1535 Desire nng_ctx_sendmsg and nng_ctx_recvmsg
|
| | |
|
| | |
|
| |
|
| |
In case sub0_ctx_subscribe is called to subscribe to _all_ topics
|
| |
|
|
|
|
| |
This takes the performance work we did for pairv1, and provides an
implementation for pairv0. The upshot should be a nice performance
boost for pair v0.
|
| | |
|
| |
|
|
|
|
| |
This is only the pair v1 protocol. Pair v0 and polyamorous mode
still have work to do. We probably won't "fix" the performance for
poly mode since that's deprecated anyway.
|
|
|
This is not quite complete, but it sets the stage for other
protocols (such as zmq or mqtt) to be added to the project.
|