aboutsummaryrefslogtreecommitdiff
path: root/src/protocol/pubsub
Commit message (Collapse)AuthorAge
* fixes #44 open protocol by "name" (symbol) instead numberGarrett D'Amore2017-08-09
| | | | | | | | | | | | | | fixes #38 Make protocols "pluggable", or at least optional This is a breaking change, as we've done away with the central registered list of protocols, and instead demand the user call nng_xxx_open() where xxx is a protocol name. (We did keep a table around in the compat framework though.) There is a nice way for protocols to plug in via an nni_proto_open(), where they can use a generic constructor that they use to build a protocol specific constructor (passing their ops vector in.)
* Yet more race condition fixes.Garrett D'Amore2017-07-20
| | | | | | | | | We need to remember that protocol stops can run synchronously, and therefore we need to wait for the aio to complete. Further, we need to break apart shutting down aio activity from deallocation, as we need to shut down *all* async activity before deallocating *anything*. Noticed that we had a pipe race in the surveyor pattern too.
* Crash on close again.Garrett D'Amore2017-07-19
| | | | | | | | | | | This one is caused by us deallocating the msg queue before we stop all asynchronous I/O operations; consequently we can wind up with a thread trying to access a msg queue after it has been destroyed. A lesson here is that nni_aio_fini() needs to be treated much like nni_thr_fini() - you should do this *before* deallocating anything that callback functions might be referencing.
* More s/nni_aio_stop/nni_aio_cancel/Garrett D'Amore2017-07-15
|
* Give up on uncrustify; switch to clang-format.Garrett D'Amore2017-07-10
|
* Clean up some unused variables.Garrett D'Amore2017-07-07
|
* Remove the extra _aio_ part of pipe send and recv functions.Garrett D'Amore2017-07-02
|
* Refactor stop again, closing numerous races (thanks valgrind!)Garrett D'Amore2017-06-28
|
* Protocols keep their own reference counts.Garrett D'Amore2017-06-24
|
* Make APIs for holding references more consistent.Garrett D'Amore2017-06-21
|
* Hopefully close shutdown race in rep.Garrett D'Amore2017-03-29
|
* Eliminate p_active, better names for pipe start and stop.Garrett D'Amore2017-03-19
|
* Race condition fixes in pub/sub.Garrett D'Amore2017-03-10
|
* Pub/Sub now callback driven.Garrett D'Amore2017-03-06
|
* Event notification via pollable FDs verified working.Garrett D'Amore2017-01-22
|
* Added protocol flags (which ones can send, and which can receive).Garrett D'Amore2017-01-21
|
* Start of event framework.Garrett D'Amore2017-01-16
| | | | | | | | | | This compiles correctly, but doesn't actually deliver events yet. As part of this, I've made most of the initializables in nng safe to tear-down if uninitialized (or set to zero e.g. via calloc). This makes it loads easier to write the teardown on error code, since I can deinit everything, without worrying about which things have been initialized and which have not.
* Various complaints found in AppVeyor build.Garrett D'Amore2017-01-16
|
* Minor cleanups.Garrett D'Amore2017-01-10
|
* Move to generic socket & pipe workers, and up to 4 each.Garrett D'Amore2017-01-08
| | | | | This should eliminate all need for protocols to do their own thread management tasks.
* Simplify locking for protocols.Garrett D'Amore2017-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.)
* Fixes for PUB/SUB.Garrett D'Amore2017-01-06
| | | | | This fixes several issues, and brings PUB/SUB to operational correctness. Included is test code to verify that.
* Message API was awkward.Garrett D'Amore2017-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.
* Start of PUB/SUB testing. Fixed a subscribe bug.Garrett D'Amore2017-01-06
|
* Oops forgot to git commit pub.cGarrett D'Amore2017-01-05
|
* Change a bunch of copyrights to 2017 for work done since the 1st.Garrett D'Amore2017-01-05
|
* Oops -- forgot to test compile.Garrett D'Amore2017-01-05
|
* Release subscriptions on socket close.Garrett D'Amore2017-01-05
|
* SUB protocol implemented (uses sorted linked list for topics).Garrett D'Amore2017-01-05