aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* Import updated C-Convey (for color on Windows).Garrett D'Amore2017-01-16
|
* Fix pipeline test failure.Garrett D'Amore2017-01-16
| | | | | | | | | I think there are a couple of linked issues; it really comes down to the fact that various threads start up asynchronously, and might not have gotten to the point where they are ready to receive. Making matters worse is the fact that when the message queues are unbuffered, the absence of a reader *right then* can cause pushback, which causes the load balance test to pass over a queue it really shouldn't.
* Fixes for 32-bit Windows compilation.Garrett D'Amore2017-01-16
|
* Various complaints found in AppVeyor build.Garrett D'Amore2017-01-16
|
* Make sure to pass -DNNG_STATIC_LIB for static library.Garrett D'Amore2017-01-15
|
* Initial AppVeyor support.Garrett D'Amore2017-01-15
|
* Compile static *and* shared libraries.Garrett D'Amore2017-01-15
| | | | | Test code needs to use the static libraries so that they can get access to the entire set of symbols, including private ones that are not exported.
* Cleanup winsock somewhat.Garrett D'Amore2017-01-15
| | | | | | It turns out that I didn't quite understand overlapped I/O. We can and should always do the GetOverlappedResult(), regardless of how the routine returns.
* Windows IPC works now.Garrett D'Amore2017-01-15
|
* Use Windows tick clock instead of Performance counters.Garrett D'Amore2017-01-14
| | | | | | | | | | | | 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.)
* Windows TCP now working.Garrett D'Amore2017-01-14
| | | | | | | There are lots of changes here, mostly stuff we did in support of Windows TCP. However, there are some bugs that were fixed, and we added some new error codes, and generalized the handling of some failures during accept. Windows IPC (NamedPipes) is still missing.
* Many fixes for Windows. It compiles, and some tests work.Garrett D'Amore2017-01-13
| | | | | | Windows is getting there. Needs a couple of more more hours to enable everything, especially IPC, and most of the work at this point is probably some combination of debug and tweaking things like error handling.
* Initial swag at Win32. Much to do still.Garrett D'Amore2017-01-12
|
* Pull out the posix clock stuff for plat_clock.Garrett D'Amore2017-01-12
|
* Block SIGPIPE. Ewww...Garrett D'Amore2017-01-12
|
* Add IPC (UNIX domain sockets) for POSIX, and test suite.Garrett D'Amore2017-01-12
|
* Stop testing some stuff we don't care about.Garrett D'Amore2017-01-12
|
* Fixes for survey test. (We need to complete the connection first.)Garrett D'Amore2017-01-12
|
* Bus working, and added bus test.Garrett D'Amore2017-01-11
|
* Initial (untested) bus implementation.Garrett D'Amore2017-01-10
|
* Minor cleanups.Garrett D'Amore2017-01-10
|
* Cleanup debug.Garrett D'Amore2017-01-09
|
* Probably this fixes the hang -- something was clearing the error condition.Garrett D'Amore2017-01-09
|
* (Briefly) debug output for hang in survey test.Garrett D'Amore2017-01-09
|
* Initialize some mq vars.Garrett D'Amore2017-01-09
|
* Add survey test (and fix survey pattern).Garrett D'Amore2017-01-09
| | | | | | | As part of this, we've added a way to unblock callers in a message queue with an error, even without a signal channel. This was necessary to interrupt blockers upon survey timeout. They will get NNG_ETIMEDOUT, but afterwards callers get NNG_ESTATE.
* POSIX /dev/urandom compilation bug.Garrett D'Amore2017-01-08
|
* New ISAAC pRNG. This replaces other local hacks for random data.Garrett D'Amore2017-01-08
| | | | | | Platforms must seed the pRNGs by offering an nni_plat_seed_prng() routine. Implementations for POSIX using various options (including the /dev/urandom device) are supplied.
* Prevent uncrustify "error" checks from trigger travis errors.Garrett D'Amore2017-01-08
| | | | | | | There are multiple different versions of uncrustify, and they do not always generate the same output. (Arguably this is due to defects in uncrustify.) So for now we punt and don't throw an error, but we do still generate the output. Pay attention to this going forward.
* Add RAW option support (no-op) for PAIR.Garrett D'Amore2017-01-08
|
* Add surveyor protocol (no tests yet).Garrett D'Amore2017-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'Amore2017-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'Amore2017-01-08
|
* Fix small message leak in pipeline test.Garrett D'Amore2017-01-07
|
* More close race fixing.Garrett D'Amore2017-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'Amore2017-01-07
|
* Pipe bail shouldn't mess with lists. Doh!Garrett D'Amore2017-01-07
|
* Uncrustify fix for last.Garrett D'Amore2017-01-07
|
* Race condition fix attempt.Garrett D'Amore2017-01-07
|
* 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.)
* Add another dial to ensure that accept loop has made progress.Garrett D'Amore2017-01-07
|
* Pipeline fixes.Garrett D'Amore2017-01-07
|
* Pipeline test.Garrett D'Amore2017-01-07
|
* Fix startup race in the tests.Garrett D'Amore2017-01-06
| | | | | Pub pipes might not be connected yet. Do the dial from the pub side synchronously, and we can be sure no data will be lost.
* Bump the timeouts even more for Travis.Garrett D'Amore2017-01-06
|
* Bump timeout for crummy Travis -- 50 ms isn't enough!Garrett D'Amore2017-01-06
|
* Shut up uncrustify.Garrett D'Amore2017-01-06
|
* Fix for valgrind leak.Garrett D'Amore2017-01-06
|
* 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.
* Bunch of copyright fixes.Garrett D'Amore2017-01-06
|