On Wed, Apr 08, 2020 at 04:54:48PM +0100, David
Villasmil wrote:
I have a question on this, since 180 arrived
before the 200, shouldn’t it
go out before? I.e.: FIFO? Or is this not happening because there are
multiple processes and one may take the 180 and the other the 200 and they
are processes independently?
I guess setting the childs to only 1 should prove this theory.
In theory, it
should all be FIFO, of course. In practice, there are
stochastic aspects to OS process scheduling and I/O scheduling which
make the ingress and egress of messages arriving at Kamailio
simultaneously or substantially simultaneously somewhat indeterminate.
And, of course, it depends on how complicated the processing of the
messages respectively is, either in computational terms, or external I/O
wait, or both.
To Steve Davies' point, that's just the nature of the multiprocess
architecture, together with the lack of a distributor thread.
A distributor thread (or process) won't help here, if it distributes
traffic to other threads (processes) without waiting for them to finish,
which ends up to be serial processing. The distributor role for UDP
traffic is done by the kernel. For tcp/tls there is a distributor
process for connections.
Cheers,
Daniel
--
Daniel-Constantin Mierla --