summaryrefslogtreecommitdiff
path: root/src/protocol/pipeline/pull.c
Commit message (Collapse)AuthorAge
* 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
|
* 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.)
* Initial swag at pipeline (PUSH/PULL).Garrett D'Amore2017-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.