aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
* Dangling compiler warnings from sock handle change.Garrett D'Amore2017-01-20
|
* fixes #18 Sockets should be uint32_t's (handles) not pointers.Garrett D'Amore2017-01-20
|
* Fix leak in surveyor pipe.Garrett D'Amore2017-01-19
|
* Thread fini shouldl be idempotent.Garrett D'Amore2017-01-19
|
* Fix synchronization problem in msgqueue with multiple consumers.Garrett D'Amore2017-01-19
|
* Fix TCP hostname wildcards on Windows. Sort of.Garrett D'Amore2017-01-18
| | | | | | | | | I seem to be having a very difficult time getting dual-stack sockets to function properly on Windows. I've sort of abandoned it for now. I need to think about how to solve this -- it's not clear to me right now whether dual stack sockets are the right answer or not. People do expect these to work, but a tcp6:// url might be more elegant.
* Address segfault in TCP, and fix wild card handling.Garrett D'Amore2017-01-18
|
* fixes #12 SURVEY hang in TravisGarrett D'Amore2017-01-18
|
* Fixes pipeline stall due to backpressure signaling race.Garrett D'Amore2017-01-18
|
* Reduce lock contention and simplify logic for endpoint creation.Garrett D'Amore2017-01-18
|
* Reaper exits too soon, leaking bits.Garrett D'Amore2017-01-18
|
* Fix leaking notify structs.Garrett D'Amore2017-01-18
|
* Windows compilation fixes.Garrett D'Amore2017-01-18
|
* Fixes for valgrind issues.Garrett D'Amore2017-01-18
|
* Public pipe and endpoint APIs use IDs instead of pointers.Garrett D'Amore2017-01-17
|
* Pipe IDs are now tracked on global ID hashes.Garrett D'Amore2017-01-17
|
* Pipe IDs are now tracked by hash table for performance.Garrett D'Amore2017-01-17
| | | | | This gives a better idea of pipe ID uniqueness, and is a step towards conversion of the API to use IDs instead of pointers.
* Added dynamic ID generation & management for idhash tables.Garrett D'Amore2017-01-17
| | | | | | This will allow us to use idhash tables to manage id handles a bit more flexibly. For example, sockets, pipe IDs, etc. can all be generated, and we can use hash tables to ensure that values do not collide.
* Windows clock fixes.Garrett D'Amore2017-01-16
| | | | | | | | | | | | Sleep() on Win32 rounds *down*, leading to truncated timeouts. What we do is change our sleep routing to start incrementally sleeping by 1ms until the tick count is reached. This ensures we don't wake early. This problem affects condition variables too, which means that some timeouts may occur up to one clock tick early (15ish ms). This should not be a problem for most users, who should really only be setting timeouts in quantities of a second or greater.
* External event API for send/recv implemented.Garrett D'Amore2017-01-16
| | | | | | This was the main blocker, I think, for the nanomsg legacy compat shim. Now that we have this, it should be relatively straight-forward to implement the legacy nanomsg API, including the SENDFD, RECVFD thing.
* Recv/Send event plumbing implemented (msgqueue and up).Garrett D'Amore2017-01-16
| | | | | | | | This change provides for a private callback in the message queues, which can be used to notify the socket, and which than arranges for the appropriate event thread to run. Upper layer hooks to access this still need to be written.
* 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.
* 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
|
* 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
|
* 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
|
* Probably this fixes the hang -- something was clearing the error condition.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.
* 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
|
* 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
|