app/system/uorb: fix listener run_once not work.

And remove dead code.

Signed-off-by: Jiuzhu Dong <dongjiuzhu1@xiaomi.com>
This commit is contained in:
jihandong 2022-06-08 19:50:14 +08:00 committed by Alan Carvalho de Assis
parent f02c5a5d7e
commit 874ed7654d

View File

@ -173,6 +173,8 @@ static int listener_add_object(FAR struct list_node *objlist,
FAR struct orb_object *object)
{
FAR struct listen_object_s *tmp;
struct orb_state state;
int ret;
tmp = malloc(sizeof(struct listen_object_s));
if (tmp == NULL)
@ -180,9 +182,17 @@ static int listener_add_object(FAR struct list_node *objlist,
return -ENOMEM;
}
ret = listener_get_state(object, &state);
if (ret < 0)
{
free(tmp);
return ret;
}
tmp->object.meta = object->meta;
tmp->object.instance = object->instance;
tmp->timestamp = 0;
tmp->timestamp = orb_absolute_time();
tmp->generation = state.generation;
list_add_tail(objlist, &tmp->node);
return 0;
}
@ -236,13 +246,6 @@ static int listener_update(FAR struct list_node *objlist,
return ret;
}
if (old->timestamp == 0)
{
old->timestamp = orb_absolute_time();
old->generation = state.generation;
return 0;
}
delta_time = now_time - old->timestamp;
delta_generation = state.generation - old->generation;
if (delta_generation && delta_time)