aboutsummaryrefslogtreecommitdiff
path: root/src/core
Commit message (Collapse)AuthorAge
* New thread infrastructure -- not used anywhere yet, but tested.Garrett D'Amore2017-01-01
|
* ECLOSED should abort the dialer.Garrett D'Amore2016-12-31
|
* Free our per socket message queues.Garrett D'Amore2016-12-31
|
* Finally closed the silly endpoint / pipe use-after-free race.Garrett D'Amore2016-12-31
|
* More use after free.Garrett D'Amore2016-12-31
|
* Use after free fix.Garrett D'Amore2016-12-31
|
* Close & destroy endpoints in a single operation.Garrett D'Amore2016-12-31
|
* Fix races in pipe termination.Garrett D'Amore2016-12-31
|
* Remove old debug.Garrett D'Amore2016-12-31
|
* Restructure to be less confusing to uncrustify.Garrett D'Amore2016-12-31
|
* Avoid C99 initialization; cmake 3.1/3.2 doesn't pass -std=c99?Garrett D'Amore2016-12-31
|
* Uncrustify fixes.Garrett D'Amore2016-12-31
|
* Factor out repeated protocol code into common.Garrett D'Amore2016-12-29
|
* Richer tests and fixes for idhash. Also dynamically allocate idhash.Garrett D'Amore2016-12-29
|
* Test suite for idhash, fix symbol errors, and value changing.Garrett D'Amore2016-12-29
|
* Move option helpers to their own file.Garrett D'Amore2016-12-29
|
* Implementation of an id hash for hashing pipes by ID.Garrett D'Amore2016-12-29
| | | | | | | | | We use some hints from Python's dict implementation, using an open addressing scheme, and just ripping off the lower bits as needed. Since we assign IDs consecutively, this should work well. We shrink the table when it is only 1/8 full, and we ensure that we grow the table when it is 2/3 full. (The growth will start by at minimum doubling the required size.)
* Pipe ID calculations & socket error functions.Garrett D'Amore2016-12-28
| | | | | | | | | | | The use of platform_next_id was a bit off, because it could give back pipe IDs that were too large (the high order bit must be clear), and in very long running applications serving many connections, the IDs could wrap and lead to duplicates. Also we have added functions to set the recverr or senderr values, which can be used by protocols -- either during initialization, or during filters. (REQ uses this for example.)
* Implement msgqueue_putback.Garrett D'Amore2016-12-28
| | | | | | | This function is called when we wish to return a message to the queue after examining it. It can also be used by the resender in the REQ protocol. Critically it does not disrupt the ordering of other messages. This is a non-blocking operation.
* Add new nni_msg_dup() API. (Needed for REQ protocol.)Garrett D'Amore2016-12-28
|
* Start of REQ protocol. Still need hook handling and resender.Garrett D'Amore2016-12-28
|
* Send and receive now work.Garrett D'Amore2016-12-27
| | | | | | This fixes a few core issues, and improves readability for the message queue code as well. inproc delivery of messages works now.
* Message allocation fixed. Comparison was backwards.Garrett D'Amore2016-12-27
|
* Times are 64-bits, not 32-bits!Garrett D'Amore2016-12-27
|
* Buffer resizing implemented. (Needed for single threaded inproc tests.)Garrett D'Amore2016-12-27
|
* Substantial fixes for listen & dialers.Garrett D'Amore2016-12-25
| | | | | | | | | | 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.)
* Change entry points in transports to bind() and connect().Garrett D'Amore2016-12-25
| | | | | | | This was done as these entry points are more clearly associated with single function transport routines like those from BSD sockets, unlike our higher level dial() and listen() APIs that do accept() or reconnect in loops.
* New dial/listen API. Dialing might work now.Garrett D'Amore2016-12-25
| | | | | | | | | 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.
* Pipe pointer was not stored, leading to crash in dial/listen.Garrett D'Amore2016-12-25
|
* Expose and implement pipe operations. (nng_pipe_close, nng_pipe_getopt).Garrett D'Amore2016-12-25
|
* Change in handling of extended info for messages.Garrett D'Amore2016-12-24
| | | | | | | | Instead of supplying a pipe, and expecting that the info there would be included we use nng_msg_getopt(). This will be enabled by the app asking for extended information by setting an option, we don't copy the data for every app (most won't care). This means we don't have to worry about reference counting the pipe for the life of associated messages.
* Getopt implemented (and minimal test).Garrett D'Amore2016-12-24
|
* nng_setopt works (rcvtimeout, etc.) External API adjustments.Garrett D'Amore2016-12-23
| | | | | | | 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.
* Uncrustify fixes.Garrett D'Amore2016-12-23
|
* Don't linger if there are no possible readers present.Garrett D'Amore2016-12-23
|
* Some tests around recvmsg (no senders yet). Fixes for some edge cases.Garrett D'Amore2016-12-23
|
* Support for unbuffered msgqueues (like Go unbuffered channels.)Garrett D'Amore2016-12-23
|
* Initial tests -- open & close work (no pipes or endpoints yet).Garrett D'Amore2016-12-23
|
* More C99-ification. Also end the _t thing for types (ISO C rules).Garrett D'Amore2016-12-22
|
* Implemened synchronous & asynchronuos dialer, accepter. Getting close...Garrett D'Amore2016-12-22
|
* Added lingering (1s default.)Garrett D'Amore2016-12-22
|
* Implemented dialer core.Garrett D'Amore2016-12-22
|
* Endpoint dialer implemented.Garrett D'Amore2016-12-22
|
* C99 comment style.Garrett D'Amore2016-12-22
|
* Work on endpoints. More C99 & type cleanups.Garrett D'Amore2016-12-22
|
* Inline locks (fewer allocs), simpler absolute times for wakeups. nn_sock_recv.Garrett D'Amore2016-12-22
|
* Synchronization enhancements - inproc & msgqueue. Absolute waits...Garrett D'Amore2016-12-22
|
* Start of work to inline mutexes and condition variables.Garrett D'Amore2016-12-22
|
* Use C99 structure initializers FTW. Various other changes.Garrett D'Amore2016-12-22
|
* Logic for socket shutdown, cleanup, and draining figured out.Garrett D'Amore2016-12-22
| | | | | There's work to do still, but I've left clear indications of the design in comments. Some ugly mysteries are now solved.