Skip to content

Changes

Started by upstream project gerrit-osmo-trx #620
Started 1 day 0 hr ago
Queued 7.9 sec
Took 31 min on built-in
libosmo-trx/ep: flush pending TRXC messages on endpoint teardown

osmo_trx_ep_close() used to drop any still-queued ctrl socket Tx data
via osmo_iofd_free(), including a 'goodbye' TRXC message (i.e. "CMD
POWEROFF") that may have just been enqueued right before teardown.

Detach such a ctrl_iofd from the endpoint (which may be freed right
after osmo_trx_ep_close() returns) and let it live on its own, driven
by the same event loop, until the pending write(s) complete (or fail),
at which point it closes and frees itself. Data sockets and pending Tx
data batches are still dropped immediately, as before.

This follows the async-flush pattern used by osmo-pcap's
osmo_pcap_wr_file_flush(), adapted to the osmo_io API (there is no
osmo_iofd_flush()).

Change-Id: I69e6a3bcf49afc3cfca4a72afdf459625cb91e56
Vadim Yanitskiy at