What do you mean with memory increase ?
sd_bus is unlikely to have any severe memory leak under normal
conditions (if there is any, they are usually found in error paths) so
you are either mis-using the api or misunderstanding memory
management. if there is any memory leak either in your code or in
sd_bus it will be found building both your code and systemd with leak
sanitizer.

On Sat, Jan 22, 2022 at 3:16 AM www <[email protected]> wrote:
>
> Dear all,
>
> When using sd_bus_process() + sd_bus_wait()  to implement the 
> application(Service), call the methods function on the service can obtain the 
> correct information.  Run a certain number of times will lead to insufficient 
> memory and memleak does occur.
>
> It should not be a problem with the DBUS method, because a single call does 
> not increase memory, it needs to call the method 65 ~ 70 times, and you will 
> see the memory increase. After stopping the call, the memory will not 
> decrease. It seems that it has nothing to do with the time interval when the 
> method is called.
>
> code implementation:
> int main()
> {
>     ......
>     r = sd_bus_open_system(&bus);
>     ...
>     r = sd_bus_add_object_vtable(bus, ......);
>     ......
>     r= sd_bus_request_name(bus, "xxx.xx.xx.xxx");
>     ......
>
>     for( ; ; )
>     {
>         r = sd_bus_process(bus, NULL);
>         .......
>         r = sd_bus_wait(bus, -1);
>         ......
>     }
>     sd_bus_slot_unref(slot);
>     sd_bus_unref(bus);
> }
>
> thanks,
> Byron
>
>
>
>
>
>
>
>
>

Reply via email to