| Commit message (Collapse) | Author | Age |
| ... | |
| |
|
|
|
|
| |
In addition, the message queue code is rather heavy weight, so this may
make the inproc code a bit leaner. It also makes backpressure conditions
much more reliable since it now is completely unbuffered.
|
| |
|
|
|
|
|
|
|
|
|
| |
This allows --reqrep0, --pair0, --pair1, and --bus0 to be used with
the inproc_lat, and also inproc_thr (though only with pair options for
that for now). It also introduced --url for both programs to support
testing over different transports.
Also, we no longer pass out the header for REQ reply -- that is
an error, and led to some unfortunate failures when reusing the
message.
|
| | |
|
| |
|
|
|
|
|
| |
We've also finished fleshing out the statistics for pairv1, addressed a
possible race around the TTL, and added additional test cases to validate
things. We also have tightened up the send logic to ensure we do not
send a bad message on the wire (drop the malformed message on the send side).
|
| |
|
|
|
|
|
|
| |
This correctly moves the entire protocol header for XREQ and XRESPONDENT
protocols to the message header (not the body). This is where it should
always have been. There is some small chance that applications which were
coded to parse the header from the body will break. We don't think there
are any such applications in use.
|
| |
|
| |
- Fixes #751
|
| |
|
|
|
|
|
| |
Specifically, we don't need to read the atomic value each loop
iteration. We can just get it when a message is first received,
and then use that value. This should make receiving through proxies
a little more efficient.
|
| | |
|
| | |
|
| |
|
|
|
| |
Also, add a test to cover the RESPOND protocol. This gets about
95% of the coverage.
|
| | |
|
| | |
|
| |
|
|
|
|
| |
The new tests are more exhaustive, and cover everything. We also
added a case for testing that posting messages that we didn't
subscribe too doesn't raise the pollable flag.
|
| | |
|
| |
|
|
|
|
|
| |
This gets near 100% coverage of the PUB/SUB protocols.
The remaining uncovered bits will need to have a mock protocol that
runs slower, so that we can inject both back pressure, and also so
that we can inject "erroroneous" messages.
|
| | |
|
| |
|
|
|
|
|
|
| |
This also fixes a possible bug if mixing poll file descriptors and
contexts on the same socket. Most folks are unlikely to ever run
into this bug.
At this point the REQ/REP coverage is nearly complete (over 95%).
|
| |
|
|
|
|
|
|
|
|
| |
The TTL in these cases should have been atomic. To facilitate
things we actually introduce an atomic int for convenience. We
also introduce a convenience nni_msg_must_append_u32() and
nni_msg_header_must_append_u32(), so that we can eliminate some
failure tests that cannot ever happen. Combined with a new test
for xreq, we have 100% coverage for xreq and more coverage for
the other REQ/REP protocols.
|
| | |
|
| |
|
|
|
| |
This only does it for rep, but it also has changes that should increase
the overall test coverage for the REP protocol
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
We reap the connections when closing, to ensure that the clean up is
done outside the pollq thread. This also reduces pressure on the
pollq, we think. But more importantly it eliminates some complex
code that was meant to avoid deadlocks, but ultimately created other
use-after-free challenges. This work is an enabler for further
simplifications in the aio/task logic. While here we converted some
potentially racy locking of the dialers and reference counts to simpler
lock-free reference counting.
|
| |
|
|
| |
fixes #1097 aio prov_data not used at all
|
| |
|
|
|
| |
This also introduces an nni_atomic_cas64 to help with lock-free designs.
Some mechanical renaming was done in some of the protocols for spelling.
|
| |
|
|
| |
fixes #1103 respondent could inline backtrace
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
| |
When using the 32-bit Windows compiler, the functions
InterlockedIncrementAcquire64() and and InterlockedDecrementRelease64() are not
defined. So we fall back to the more generic InterlockedAcquire64() and
InterlockedDecrement64() on 32-bit Windows.
|
| | |
|
| |
|
|
|
| |
We've also added some TEST_NNG_SEND_STR and TEST_NNG_RECV_STR to
help with convenience when writing test code.
|
| | |
|
| |
|
|
|
|
| |
* Add error message for NNG_ECONNSHUT
* Added missing space after string.
|
| | |
|
| |
|
|
|
|
|
| |
fixes #1080 Desire better way to access statistics for NNG objects
We've also added a test that uses some of this, in order to verify
that the req protocol rejects invalid peers.
|
| | |
|
| |
|
|
|
| |
This also introduces a new atomic boolean type, so we can use that
to trigger whether we've added the HTTP handler or not.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
| |
fixes #1063 Include sanitizer runs in CI
fixes #1068 Wssfile test sometimes fails with wrong error code
While here, addressed a number of clang-tidy items, and some light
cleanup of code we were already in.
|
| | |
|
| | |
|
| |
|
|
|
|
| |
This includes changes to support setting the sanitizer *correctly*
(the old code CMake stuff didn't quite get it right), and addresses
a number of failures in the test code found by the address sanitizer.
|
| | |
|
| |
|
|
|
|
| |
Also, this has refactored the websocket stream test to the new
acutest.h, and includes a much deeper test of fragmentation and
reassembly of websocket streams.
|
| | |
|
| |
|
|
| |
The reqpoll test is now moved into the common req/rep logic.
|
| |
|
|
| |
Seeing this failure in the cloud on Darwin.
|