| Commit message (Collapse) | Author | Age | |
|---|---|---|---|
| * | Add surveyor protocol (no tests yet). | Garrett D'Amore | 2017-01-08 |
| | | | | | | | | This adds the surveyor protocol, and updates the respondent somewhat. I've switched to using generic names for per-pipe and per-socket protocol data. Hopefully this will make 'cut-n-paste' from other protocol implementations easier. | ||
| * | Move to generic socket & pipe workers, and up to 4 each. | Garrett D'Amore | 2017-01-08 |
| | | | | | | This should eliminate all need for protocols to do their own thread management tasks. | ||
| * | Add respondent protocol. (Half of survey pattern.) | Garrett D'Amore | 2017-01-08 |
| | | |||
| * | More close race fixing. | Garrett D'Amore | 2017-01-07 |
| | | | | | | Don't drop the lock in sock_close while holding the pipe reference. I'm pretty sure this is responsible for the use-after-free race. | ||
| * | Clean up sender/recver threads. | Garrett D'Amore | 2017-01-07 |
| | | |||
| * | Pipe bail shouldn't mess with lists. Doh! | Garrett D'Amore | 2017-01-07 |
| | | |||
| * | Uncrustify fix for last. | Garrett D'Amore | 2017-01-07 |
| | | |||
| * | Race condition fix attempt. | Garrett D'Amore | 2017-01-07 |
| | | |||
| * | Simplify locking for protocols. | Garrett D'Amore | 2017-01-07 |
| | | | | | | | | | | In an attempt to simplify the protocol implementation, and hopefully track down a close related race, we've made it so that most protocols need not worry about locks, and can access the socket lock if they do need a lock. They also let the socket manage their workers, for the most part. (The req protocol is special, since it needs a top level work distributor, *and* a resender.) | ||
| * | Initial swag at pipeline (PUSH/PULL). | Garrett D'Amore | 2017-01-06 |
| | | | | | | | | | | | | | | | | PUSH attempts to do a round-robin based distribution. However, I noticed that there is a bug in REQ, because REQ sockets will continue to pull down work until the first one no longer has room. This can in theory lead to scheduliung imbalances when the load is very light. (Under heavy load, the backpressure dominates.) Also, I note that mangos suffers the same problem. It does not make any attempt to deliver work equally, basically each pipe winds up pulling messages until its own buffers are full. This is bad. We can borrow the logic here for both REQ and mangos. None of this is tested yet. | ||
| * | Bunch of copyright fixes. | Garrett D'Amore | 2017-01-06 |
| | | |||
| * | Message API was awkward. | Garrett D'Amore | 2017-01-06 |
| | | | | | | | | 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. | ||
| * | Change a bunch of copyrights to 2017 for work done since the 1st. | Garrett D'Amore | 2017-01-05 |
| | | |||
| * | PUB protocol (untested). | Garrett D'Amore | 2017-01-05 |
| | | |||
| * | Add nng_shutdown() for sockets to help avoid close race. | Garrett D'Amore | 2017-01-05 |
| | | | | | Also we added a two phase shutdown for threads. | ||
| * | SUB protocol implemented (uses sorted linked list for topics). | Garrett D'Amore | 2017-01-05 |
| | | |||
| * | Fix close related races (POSIX close is a PITA). | Garrett D'Amore | 2017-01-04 |
| | | |||
| * | Test for duplicate address listen, and fix in TCP for same. | Garrett D'Amore | 2017-01-04 |
| | | |||
| * | Initial cut at TCP, totally untested beyond compilation. | Garrett D'Amore | 2017-01-04 |
| | | | | | | This also adds checks in the protocols to verify that pipe peers are of the proper protocol. | ||
| * | Working towards TCP support. | Garrett D'Amore | 2017-01-03 |
| | | |||
| * | Add NNI_PUT64 and NNI_GET64. | Garrett D'Amore | 2017-01-02 |
| | | |||
| * | Add NNI_GET32, NNI_PUT32 macros. | Garrett D'Amore | 2017-01-02 |
| | | |||
| * | Fixes to enable REQ/REP to operate. | Garrett D'Amore | 2017-01-02 |
| | | | | | | | | This uncovered a few problems - inproc was not moving the headers to the body on transmit, and the message chunk allocator had a serious bug leading to memory corruption. I've also added a message dumper, which turns out to be incredibly useful during debugging. | ||
| * | Begin testing REQ/REP. | Garrett D'Amore | 2017-01-02 |
| | | |||
| * | Protocol initialization restructuring. | Garrett D'Amore | 2017-01-02 |
| | | |||
| * | Endpoint renaming. | Garrett D'Amore | 2017-01-02 |
| | | |||
| * | Transport renaming. | Garrett D'Amore | 2017-01-02 |
| | | |||
| * | Transport renaming phase 1. | Garrett D'Amore | 2017-01-02 |
| | | |||
| * | Uncrustify. | Garrett D'Amore | 2017-01-02 |
| | | |||
| * | Rename nni_socket to nni_sock. | Garrett D'Amore | 2017-01-02 |
| | | |||
| * | Change msgqueue -> msgq. | Garrett D'Amore | 2017-01-02 |
| | | |||
| * | More structure allocation macro conversion. | Garrett D'Amore | 2017-01-02 |
| | | |||
| * | Use new NNI_ALLOC_STRUCT macro. nni_msg_dup copies options too. | Garrett D'Amore | 2017-01-02 |
| | | |||
| * | Uncrustify. | Garrett D'Amore | 2017-01-01 |
| | | |||
| * | Final purge of old threading & synch stuff. | Garrett D'Amore | 2017-01-01 |
| | | |||
| * | Endpoint uses single thread. | Garrett D'Amore | 2017-01-01 |
| | | |||
| * | Socket reaper uses new-thread. | Garrett D'Amore | 2017-01-01 |
| | | |||
| * | Message queues use new locking primitives. | Garrett D'Amore | 2017-01-01 |
| | | |||
| * | Pipe simplifications for thread management. | Garrett D'Amore | 2017-01-01 |
| | | | | | | | | This may also address a race in closing down pipes. Now pipes are always registered with the socket. They also always have both a sender and receiver thread. If the protocol doesn't need one or the other, the stock thread just exits early. | ||
| * | Nuke legacy _t types. | Garrett D'Amore | 2017-01-01 |
| | | |||
| * | New thread infrastructure -- not used anywhere yet, but tested. | Garrett D'Amore | 2017-01-01 |
| | | |||
| * | ECLOSED should abort the dialer. | Garrett D'Amore | 2016-12-31 |
| | | |||
| * | Free our per socket message queues. | Garrett D'Amore | 2016-12-31 |
| | | |||
| * | Finally closed the silly endpoint / pipe use-after-free race. | Garrett D'Amore | 2016-12-31 |
| | | |||
| * | More use after free. | Garrett D'Amore | 2016-12-31 |
| | | |||
| * | Use after free fix. | Garrett D'Amore | 2016-12-31 |
| | | |||
| * | Close & destroy endpoints in a single operation. | Garrett D'Amore | 2016-12-31 |
| | | |||
| * | Fix races in pipe termination. | Garrett D'Amore | 2016-12-31 |
| | | |||
| * | Remove old debug. | Garrett D'Amore | 2016-12-31 |
| | | |||
| * | Restructure to be less confusing to uncrustify. | Garrett D'Amore | 2016-12-31 |
| | | |||
