Loosing signal while reading bus systems under C

Alban Crequy alban.crequy at collabora.co.uk
Sat Nov 20 06:09:32 PST 2010


Le Mon, 15 Nov 2010 11:19:37 +0100,
"Victor Andres" <victor at cymonline.com> a écrit :

> Hello,
> I'm trying to use dbus to send information from one process to other,
> using low level C. The frecuency that this application send signal is
> about 1200 per seconds, and each signal is a struct of 4 or 7 basic
> datas (there are 2 different signals). I think I'm writing signal
> correctly (at less I can monitory them correctly from dbus-monitor
> utility), but when I'm reading it from the other application, I have
> some loosing data (or not received signal) randomly.

How big are your D-Bus messages in bytes? Can the data be lost
immediately after you start your applications, or only after a while?

I wonder if the receiving queue of the other application is full (127MB
by default on the system bus). In that case, dbus-daemon will not
deliver the signal.

By default (for the system bus):
      parser->limits.max_incoming_bytes = _DBUS_ONE_MEGABYTE * 127;

In /etc/dbus-1/session.conf for the session bus:
  <limit name="max_incoming_bytes">1000000000</limit>

That said, I agree that other solutions should be considered.

Regards,
Alban



More information about the dbus mailing list