| Commit message (Collapse) | Author | Age |
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This does a few things. First it closes some preexisting leaks.
Second it tightens the overall close logic so that we automatically
discard idhash resources (while keeping numeric values for next id
etc. around) when the last socket is closed. This then eliminates
the need for applications to ever explicitly terminate resources.
It turns out platform-specific resources established at nni_init()
time might still be leaked, but it's also the case that we now no
longer dynamically allocate anything at platform initialization time.
(This presumes that the platform doesn't do so under the hood when
creating critical sections or mutexes for example.)
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Since we use the tick counter to sleep, we should use the same clock
for validation. The problem is that the high performance tick counter
on the CPU may be slightly out of agreement with the windows clock.
Furthermore, the tick counter is probably lots faster to retrieve since
it is already updated, and needn't be recalculated each time.
(We should consider just switching to millisecond clock resolution
internally as well. It turns out that I don't think that timers that
are shorter than 1ms are very useful.)
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
The use of a single function to get both size and length actually
turned out to be awkward to use; better to have separate functions
to get each. While here, disable some of the initialization/fork
checks, because it turns out they aren't needed.
|
| |
|
|
| |
Also we added a two phase shutdown for threads.
|
| |
|
|
|
|
| |
This fixes a few core issues, and improves readability for the
message queue code as well. inproc delivery of messages works
now.
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
At this point listening and dialing operations appear to function properly.
As part of this I had to break the close logic up since otherwise we had a
loop trying to reap a thread from itself. So there is now a separate reaper
thread for pipes per-socket. I also changed lists to be a bit more rigid,
and allocations now zero memory initially. (We had bugs due to uninitialized
memory, and rather than hunt them all down, lets just init them to sane zero
values.)
|
| |
|
|
|
|
|
|
|
| |
In order to give control over synchronous vs. async dialing, we provide a
flag to indicate synchronous dialing is desired. (Hmm. Should we reverse the
default sense?) We extend listen to have the same flag.
Logic is moved to endpt.c since dialing is really and endpoint specific operation.
There are other minor related bug fixes here too.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
The external API now uses simpler names for various things, notably
we ditch the whole nng_socket_xx prefix. For example, intstead of
nng_socket_create, we just use nng_open(). There are no more nng_socket_xxx
calls.
|
| |
|
|
| |
default.
|
| | |
|
| |
|