aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
* windows tcp: Lookup extended TCP function pointers at startupGarrett D'Amore2024-12-28
| | | | | | This avoids the need for a lock during listener or dialer initialization, and it avoids the need to carry these pointers on those objects. It also eliminates a potential failure case "post startup".
* tcp: flatten the listener implementationGarrett D'Amore2024-12-28
| | | | | | | | | | The endpoints both use a nesting level for some common code and some platform dependent code. But the common code isn't that much and we have similar patterns for e.g. IPC. This avoids a layer of indirection in the structs, and extra allocations. The payoff will be even larger for the dialers, but that is next. (Dialers are more complicated because of DNS.)
* fixes #1954 make BUILD_SHARED_LIBS ON by defaultGarrett D'Amore2024-12-26
|
* zerotier: removedGarrett D'Amore2024-12-26
| | | | | | | | | | All vestiges of ZeroTier have been removed. Also, as consequence, some binary values have changed (specifically the number of the address family used for NNG_AF_ABSTRACT.) We may create a new ZeroTier transport that makes use of lwIP to provide for ZeroTier and native host network coexistence, without requiring ZeroTier to participate in the native networking stack.
* Update .gitignoreGarrett D'Amore2024-12-26
|
* http: inline aiosGarrett D'Amore2024-12-26
|
* tcp dialer: inline aio objectsGarrett D'Amore2024-12-26
|
* dialer: use inline aioGarrett D'Amore2024-12-26
|
* fix for potential leaking connectionsGarrett D'Amore2024-12-26
|
* aio: remove nni_aio_begin and nni_aio_scheduleGarrett D'Amore2024-12-26
| | | | | The nni_aio_start function replaces these two functions with a simple, single call, reducing pressure on common locks.
* pipeline: use nni_aio_startGarrett D'Amore2024-12-26
|
* sub: remove some calls to nni_aio_beginGarrett D'Amore2024-12-26
|
* pair0: use nni_aio_startGarrett D'Amore2024-12-26
|
* pair1: use nni_aio_startGarrett D'Amore2024-12-26
|
* pub sub: use nni_aio_startGarrett D'Amore2024-12-26
|
* bus: use nni_aio_startGarrett D'Amore2024-12-26
| | | | | | The test needed a change to ensure that we do not trigger a debugging check (you cannot submit another job on an aio that you've been notified is stopped via NNG_ESTOPPED.)
* req rep: use nni_aio_startGarrett D'Amore2024-12-26
|
* survey protocol conversion to nni_aio_startGarrett D'Amore2024-12-26
|
* udp: more nni_aio_startGarrett D'Amore2024-12-26
|
* http: more nni_aio_start changesGarrett D'Amore2024-12-26
|
* github actions: Bump github actions to use ubuntu 24.04Garrett D'Amore2024-12-26
| | | | (Mostly this is to get a newer wolfSSL.)
* tls: use nni_aio_beginGarrett D'Amore2024-12-26
|
* http: No need to do nni_aio_begin for callbacksGarrett D'Amore2024-12-26
|
* udp: use nni_aio_startGarrett D'Amore2024-12-26
| | | | | | This also moves the close of the UDP socket later, to avoid a potential use after free while the aio's are still in-flight. Unfortunately we cannot unbind cleanly without a hard close.
* aio: nng_aio_defer replaced by nng_aio_startGarrett D'Amore2024-12-26
| | | | | This represents an API change, and we remove the nng_aio_begin function as well, introducing the lightweight nng_aio_reset instead.
* dialer: use nni_aio_startGarrett D'Amore2024-12-26
|
* ipc: use nni_aio_startGarrett D'Amore2024-12-26
|
* resolver: use nni_aio_startGarrett D'Amore2024-12-26
|
* tcp: use nni_aio_startGarrett D'Amore2024-12-26
|
* device: use nni_aio_startGarrett D'Amore2024-12-26
|
* websocket: use nni_aio_startGarrett D'Amore2024-12-26
|
* http: use nni_aio_startGarrett D'Amore2024-12-26
|
* inproc: use nni_aio_startGarrett D'Amore2024-12-26
|
* sockfd: convert to use nni_aio_startGarrett D'Amore2024-12-26
|
* aio: introduce nni_aio_reset to reset the aio before submitting more workGarrett D'Amore2024-12-26
| | | | | | This allows some use cases to reset things like the counts and outputs, before submitting more jobs. Providers should call this near the top of their functions; this is done without any locks so it should be very fast.
* msg queue: use nni_aio_startGarrett D'Amore2024-12-26
|
* aio: introduce NNG_ESTOPPEDGarrett D'Amore2024-12-26
| | | | | | | | | | | This error code results when an AIO is stopped permanently, as a result of nni_aio_close or nni_aio_stop. The associated AIO object cannot be used again. This discrimantes against a file being closed, or a temporary cancellation which might allow the aio to be reused. Consumers must check for this error status in their callbacks, and not resubmit an operation that failed with this error. Doing so, will result in an infinite loop of submit / errors.
* nni_aio_start: introduce nni_aio_start to replace aio_begin, schedule, and deferGarrett D'Amore2024-12-26
| | | | Also make nni_aio_sleep use it.
* taskq: skip the lock/unlock if there is no callbackGarrett D'Amore2024-12-26
| | | | | This should help some cases of synchronous callers that don't use a callback at all.
* posix resolver: use nni_aio_deferGarrett D'Amore2024-12-24
|
* msgq: use nni_aio_deferGarrett D'Amore2024-12-23
|
* websocket test: workaround EADDRINUSE during testsGarrett D'Amore2024-12-22
| | | | | These failures are responsible for false SEGFAULTS during testing, as we wind up failing to listen and then proceeding anyway.
* aio: introduce nni_aio_deferGarrett D'Amore2024-12-22
| | | | | | | | This will replace nni_aio_schedule, and it includes finishing the task if needed. It does so without dropping the lock and so is more efficient and race free. This includes some conversion of some subsystems to it.
* posix tcp: use common refcnt implementationGarrett D'Amore2024-12-22
|
* port events poller (illumos/Solaris): use atomic events maskGarrett D'Amore2024-12-22
|
* epoll: use atomic event maskGarrett D'Amore2024-12-22
|
* pollers: use atomic bit masking operations to eliminate lockssGarrett D'Amore2024-12-22
| | | | This is done for kqueue and poll. Others coming soon.
* ipc dialer: use common refcnt logicGarrett D'Amore2024-12-22
|
* test: fix valgrind complaint about unitialized test data in ipc testGarrett D'Amore2024-12-22
|
* dialer: configure default redial cool-down times (fixes #1964)Garrett D'Amore2024-12-22
| | | | | | | The missing default of zero leads to a hard spin and exhaustion of the open files (since reaping can take too long). The workaround is to configure these explicitly.