This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
Pau Espin Pedrol gerrit-no-reply at lists.osmocom.orgPau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/11993 )
Change subject: bsc: lchan_rtp_fsm: Remove duplicate LCHAN_EV_RTP_RELEASED event
......................................................................
Patch Set 1:
(2 comments)
https://gerrit.osmocom.org/#/c/11993/1//COMMIT_MSG
Commit Message:
https://gerrit.osmocom.org/#/c/11993/1//COMMIT_MSG@23
PS1, Line 23: 20181128193707330 DAS <0012> fsm.c:381 assignment(conn4_0-0-6-TCH_F_PDCHasPDCH-0)[0x6120000024a0]{WAIT_LCHAN_ACTIVE}: Deallocated
> you *could* make this a bit more readable next time :)
My bad, I kept using same steps as in previous commits, but I was already using another BSC binary compiled which outputs tese long file paths. I'll fix it in next version of the patch.
https://gerrit.osmocom.org/#/c/11993/1/src/osmo-bsc/lchan_rtp_fsm.c
File src/osmo-bsc/lchan_rtp_fsm.c:
https://gerrit.osmocom.org/#/c/11993/1/src/osmo-bsc/lchan_rtp_fsm.c@a742
PS1, Line 742:
> while it is true that this is normally a duplicate event, it does make sure that in case the RTP hit […]
I'm not sure yo get your point ntirely, let's see if I understand (after looking at the code again).
See _osmo_fsm_inst_term in fsm.c, in here we can see how the code path goes:
"""
/* delete ourselves from the parent */
parent = fi->proc.parent;
if (parent) {
LOGPFSMSRC(fi, file, line, "Removing from parent %s\n",
osmo_fsm_inst_name(parent));
llist_del(&fi->proc.child);
}
/* call destructor / clean-up function */
if (fi->fsm->cleanup)
fi->fsm->cleanup(fi, cause);
LOGPFSMSRC(fi, file, line, "Freeing instance\n");
/* Fetch parent again in case it has changed. */
parent = fi->proc.parent;
osmo_fsm_inst_free(fi);
/* indicate our termination to the parent */
if (parent && cause != OSMO_FSM_TERM_PARENT)
_osmo_fsm_inst_dispatch(parent, parent_term_event, data,
file, line);
"""
It's seems quite clear to me that after cleanup it immediatelly follows the osmo_fsm_inst_dispatch(). BUT (I saw that now), only if cause != OSMO_FSM_TERM_PARENT, which means if lchan fsm calls "osmo_fsm_inst_term()", then it will call "osmo_fsm_inst_term_children(fi, OSMO_FSM_TERM_PARENT,...)" and then this one is needed.
So I think instead of dropping it, I should change the if condition to:
if (lchan->fi && cause == OSMO_FSM_TERM_PARENT)
agree?
--
To view, visit https://gerrit.osmocom.org/11993
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I3e95a21e5a5ec6c35b1ab20b7a642fd7eb81e556
Gerrit-Change-Number: 11993
Gerrit-PatchSet: 1
Gerrit-Owner: Pau Espin Pedrol <pespin at sysmocom.de>
Gerrit-Reviewer: Jenkins Builder (1000002)
Gerrit-Reviewer: Neels Hofmeyr <nhofmeyr at sysmocom.de>
Gerrit-Reviewer: Pau Espin Pedrol <pespin at sysmocom.de>
Gerrit-Comment-Date: Thu, 29 Nov 2018 15:32:11 +0000
Gerrit-HasComments: Yes
Gerrit-HasLabels: No
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20181129/7a28ece2/attachment.htm>