laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/36192?usp=email )
Change subject: osmo_io: avoid OSMO_ASSERT one each API call ......................................................................
osmo_io: avoid OSMO_ASSERT one each API call
There's only one way to set the osmo_iofd_ops, which is by environment variable during the constructor time at shared library load time.
There's hence no point in doing OSMO_ASSERT() on each and every call to osmo_iofd_notify_connected() at runtime. We can move those kind of asserts to the one-time load-time constructor instead.
At the same time, we can extend those asserts to all the mandatory call-backs to be provided by the backend.
Change-Id: Id9005ac6bb260236c88670373816bf7ee6a627f1 --- M src/core/osmo_io.c 1 file changed, 26 insertions(+), 2 deletions(-)
Approvals: pespin: Looks good to me, but someone else must approve jolly: Looks good to me, but someone else must approve laforge: Looks good to me, approved Jenkins Builder: Verified
diff --git a/src/core/osmo_io.c b/src/core/osmo_io.c index 8b53aa6..d52d601 100644 --- a/src/core/osmo_io.c +++ b/src/core/osmo_io.c @@ -105,6 +105,13 @@ exit(1); }
+ OSMO_ASSERT(osmo_iofd_ops.close); + OSMO_ASSERT(osmo_iofd_ops.write_enable); + OSMO_ASSERT(osmo_iofd_ops.write_disable); + OSMO_ASSERT(osmo_iofd_ops.read_enable); + OSMO_ASSERT(osmo_iofd_ops.read_disable); + OSMO_ASSERT(osmo_iofd_ops.notify_connected); + osmo_iofd_init(); }
@@ -787,7 +794,6 @@
iofd->pending = NULL;
- OSMO_ASSERT(osmo_iofd_ops.close); rc = osmo_iofd_ops.close(iofd); iofd->fd = -1; return rc; @@ -927,7 +933,6 @@ { OSMO_ASSERT(iofd->mode == OSMO_IO_FD_MODE_READ_WRITE || iofd->mode == OSMO_IO_FD_MODE_RECVMSG_SENDMSG); - OSMO_ASSERT(osmo_iofd_ops.notify_connected); osmo_iofd_ops.notify_connected(iofd); }