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 > > > > > > > > >
