Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sync with upstream #7

Merged
merged 23 commits into from
Feb 25, 2022
Merged

Sync with upstream #7

merged 23 commits into from
Feb 25, 2022

Conversation

JaylinYu
Copy link
Member

No description provided.

gdamore and others added 23 commits February 21, 2022 19:43
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.

* MDF [idhash] remove nni_id_hash_iterate
This also arranges to clean up the maps at nng_fini time.
* 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 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.

rebase on nanonng/main
…2019

Note that one of these warning is a real bug that would prevent
TLS from functioning properly on Windows.
This eliminates more failure paths, and brings us still closer
to eliminating the possibility of failure during socket init.
This allows us to make nni_lmq_init() non-failing.  (Although
the buffer size requested at initialization might not be granted.)
This makes these functions entirely bullet proof, and eliminates
yet more error handling cases.
This function is like nng_device(), but runs asynchronously.

Also, this fixes #1503 nng_device causes nng_close to blocking
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 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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants