Skip to content

Commit d6092d0

Browse files
committed
f1u: make sure stop is not called twice
1 parent 22d59c0 commit d6092d0

File tree

1 file changed

+17
-4
lines changed

1 file changed

+17
-4
lines changed

include/srsran/f1u/local_connector/f1u_local_connector.h

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,13 @@ class f1u_gateway_cu_bearer : public f1u_cu_up_gateway_bearer
4545

4646
~f1u_gateway_cu_bearer() override { stop(); }
4747

48-
void stop() override { disconnector.disconnect_cu_bearer(ul_tnl_info); }
48+
void stop() override
49+
{
50+
if (not stopped) {
51+
disconnector.disconnect_cu_bearer(ul_tnl_info);
52+
}
53+
stopped = true;
54+
}
4955

5056
void attach_du_notifier(srs_du::f1u_du_gateway_bearer_rx_notifier& notifier_,
5157
const up_transport_layer_info& dl_tnl_info_)
@@ -77,6 +83,7 @@ class f1u_gateway_cu_bearer : public f1u_cu_up_gateway_bearer
7783
}
7884

7985
private:
86+
bool stopped = false;
8087
srs_cu_up::f1u_bearer_logger logger;
8188
srs_du::f1u_du_gateway_bearer_rx_notifier* notifier = nullptr;
8289
srs_cu_up::f1u_bearer_disconnector& disconnector;
@@ -112,7 +119,13 @@ class f1u_gateway_du_bearer : public srs_du::f1u_du_gateway_bearer
112119

113120
~f1u_gateway_du_bearer() override { disconnector.remove_du_bearer(dl_tnl_info); }
114121

115-
void stop() override { disconnector.remove_du_bearer(dl_tnl_info); }
122+
void stop() override
123+
{
124+
if (not stopped) {
125+
disconnector.remove_du_bearer(dl_tnl_info);
126+
}
127+
stopped = true;
128+
}
116129

117130
void attach_cu_notifier(f1u_cu_up_gateway_bearer_rx_notifier& handler_)
118131
{
@@ -135,8 +148,8 @@ class f1u_gateway_du_bearer : public srs_du::f1u_du_gateway_bearer
135148
}
136149
notifier->on_new_pdu(std::move(msg));
137150
};
138-
139-
srs_du::f1u_du_gateway_bearer_rx_notifier* f1u_rx = nullptr;
151+
bool stopped = false;
152+
srs_du::f1u_du_gateway_bearer_rx_notifier* f1u_rx = nullptr;
140153
up_transport_layer_info ul_up_tnl_info;
141154
up_transport_layer_info dl_tnl_info;
142155

0 commit comments

Comments
 (0)