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/.
laforge gerrit-no-reply at lists.osmocom.orglaforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-remsim/+/16594 ) Change subject: bankd: Factor out signal-sending from bankd_srvc_remove_mapping() ...................................................................... bankd: Factor out signal-sending from bankd_srvc_remove_mapping() This way we can also deliver other signals to workers. Change-Id: I86744554187d5bcee75592427990d404889f29fe --- M src/bankd/bankd_main.c 1 file changed, 19 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-remsim refs/changes/94/16594/1 diff --git a/src/bankd/bankd_main.c b/src/bankd/bankd_main.c index 194baef..29a13ed 100644 --- a/src/bankd/bankd_main.c +++ b/src/bankd/bankd_main.c @@ -125,6 +125,24 @@ static bool terminate = false; +/* deliver given signal 'sig' to the firts worker matching bs and cs (if given) */ +static void send_signal_to_worker(const struct bank_slot *bs, const struct client_slot *cs, int sig) +{ + struct bankd_worker *worker; + pthread_mutex_lock(&g_bankd->workers_mutex); + llist_for_each_entry(worker, &g_bankd->workers, list) { + if (bs && (bs->bank_id != worker->slot.bank_id || bs->slot_nr != worker->slot.slot_nr)) + continue; + if (cs && (cs->client_id != worker->client.clslot.client_id || + cs->slot_nr != worker->client.clslot.slot_nr)) + continue; + + pthread_kill(worker->thread, sig); + break; + } + pthread_mutex_unlock(&g_bankd->workers_mutex); +} + /* Remove a mapping */ static void bankd_srvc_remove_mapping(struct slot_mapping *map) { @@ -133,16 +151,7 @@ slotmap_del(g_bankd->slotmaps, map); /* kill/reset the respective worker, if any! */ - struct bankd_worker *worker; - pthread_mutex_lock(&g_bankd->workers_mutex); - llist_for_each_entry(worker, &g_bankd->workers, list) { - if (bs.bank_id == worker->slot.bank_id && - bs.slot_nr == worker->slot.slot_nr) { - pthread_kill(worker->thread, SIGMAPDEL); - break; - } - } - pthread_mutex_unlock(&g_bankd->workers_mutex); + send_signal_to_worker(&bs, NULL, SIGMAPDEL); } /* handle incoming messages from server */ -- To view, visit https://gerrit.osmocom.org/c/osmo-remsim/+/16594 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-remsim Gerrit-Branch: master Gerrit-Change-Id: I86744554187d5bcee75592427990d404889f29fe Gerrit-Change-Number: 16594 Gerrit-PatchSet: 1 Gerrit-Owner: laforge <laforge at osmocom.org> Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20191214/68f93aa9/attachment.htm>