- 25 Feb, 2014 9 commits
-
-
Olivier Crête authored
-
Olivier Crête authored
-
Olivier Crête authored
We wan't to make sure not to have a race where a thread blocks in a blocking receive or send while nice_agent_remove_stream() is called
-
Olivier Crête authored
Also, keep a pointer to the other structure for tests to use
-
Olivier Crête authored
-
Olivier Crête authored
Otherwise, it may be stuck iterating the context forever if all of the other sources are gone.
-
Olivier Crête authored
Don't re-create it.
-
Olivier Crête authored
-
Olivier Crête authored
This way, there can be no annoying re-entrancy in our code.
-
- 24 Feb, 2014 9 commits
-
-
Olivier Crête authored
This should prevent us from re-adding re-entrancy in the future
-
Olivier Crête authored
This way, there can be no annoying re-entrancy in our code.
-
Olivier Crête authored
-
Olivier Crête authored
-
Philip Withnall authored
Expand documentation for nice_agent_gather_candidates() and nice_agent_set_remote_credentials().
-
Philip Withnall authored
-
Philip Withnall authored
Ensure the agent’s context doesn’t get iterated while in the middle of reading a message, as that will corrupt the component->recv_messages state.
-
Philip Withnall authored
-
Philip Withnall authored
Use it instead of memcmp() to avoid comparing padding bytes.
-
- 21 Feb, 2014 2 commits
-
-
Olivier Crête authored
-
Olivier Crête authored
-
- 20 Feb, 2014 2 commits
-
-
Olivier Crête authored
-
Olivier Crête authored
-
- 19 Feb, 2014 1 commit
-
-
Olivier Crête authored
-
- 13 Feb, 2014 1 commit
-
-
Olivier Crête authored
-
- 05 Feb, 2014 2 commits
-
-
Olivier Crête authored
Otherwise it ran the "yes" command
-
Olivier Crête authored
It tends to cause false warnings
-
- 31 Jan, 2014 14 commits
-
-
Olivier Crête authored
-
Olivier Crête authored
And we get close to 10% perf boost
-
Olivier Crête authored
Looping through the list of send segment was the only thing from libnice showing up in my profiler. Keeping a list of segment that were never sent has made it disappear.
-
Olivier Crête authored
-
Olivier Crête authored
-
Olivier Crête authored
-
Olivier Crête authored
This is very important for reliable mode. Also use it in the GOutputStream so as to not get into the case where there is still some space in the TCP buffer, but not enough for one message. Also warn against this problem.
-
Olivier Crête authored
Also made the GIOStream into a singleton, it always returns the same one. Also make it impossible to create a GIOStream for a non-existing stream/component
-
Olivier Crête authored
It was used correctly only half the time anyway
-
Olivier Crête authored
We never send multiple messages to separate targets in practice, so this will simplify the code
-
Olivier Crête authored
Otherwise it would have attached to a newly created context
-
Olivier Crête authored
-
Philip Withnall authored
Previously, there was a race between receiving the data packets and changing state to READY, which would cause one of the final assertions to fail.
-
Philip Withnall authored
Add one new public function, nice_agent_send_messages_nonblocking(), which replaces nice_agent_send_full(). This isn’t an API break, because nice_agent_send_full() hasn’t been in a release yet. The new API allows sending multiple messages in a single call, and supports vectors of buffers to transmit the messages from. The existing nice_agent_send() API has been left untouched, although it’s a bit of a bugbear because it’s non-blocking and doesn’t fit with the new *_nonblocking() naming scheme. Oh well. This doesn’t bring any notable changes to the number of memcpy()s on the critical path: it remains at zero for the common cases and common socket types. It introduces the possibility for future work to eliminate some memcpy()s in more complex socket types, like tcp-turn and tcp-bsd, but these optimisations have not been made yet. FIXME comments have been added. This includes modifications to the test-send-recv unit test to cover the new API.
-