explicitly initialising all fields of struct msghdr instead of memset saves a noticeable amount of time
Signed-off-by: Erik Boasson <eb@ilities.com>
This commit is contained in:
parent
4f0b9cb471
commit
d76a537bb6
1 changed files with 14 additions and 3 deletions
|
@ -59,12 +59,17 @@ static ssize_t ddsi_udp_conn_read (ddsi_tran_conn_t conn, unsigned char * buf, s
|
||||||
msg_iov.iov_base = (void*) buf;
|
msg_iov.iov_base = (void*) buf;
|
||||||
msg_iov.iov_len = (ddsi_iov_len_t)len; /* windows uses unsigned, POISX size_t */
|
msg_iov.iov_len = (ddsi_iov_len_t)len; /* windows uses unsigned, POISX size_t */
|
||||||
|
|
||||||
memset (&msghdr, 0, sizeof (msghdr));
|
|
||||||
|
|
||||||
msghdr.msg_name = &src;
|
msghdr.msg_name = &src;
|
||||||
msghdr.msg_namelen = srclen;
|
msghdr.msg_namelen = srclen;
|
||||||
msghdr.msg_iov = &msg_iov;
|
msghdr.msg_iov = &msg_iov;
|
||||||
msghdr.msg_iovlen = 1;
|
msghdr.msg_iovlen = 1;
|
||||||
|
#if !defined(__sun) || defined(_XPG4_2)
|
||||||
|
msghdr.msg_control = NULL;
|
||||||
|
msghdr.msg_controllen = 0;
|
||||||
|
#else
|
||||||
|
msghdr.msg_accrights = NULL;
|
||||||
|
msghdr.msg_accrightslen = 0;
|
||||||
|
#endif
|
||||||
|
|
||||||
do {
|
do {
|
||||||
ret = recvmsg(((ddsi_udp_conn_t) conn)->m_sock, &msghdr, 0);
|
ret = recvmsg(((ddsi_udp_conn_t) conn)->m_sock, &msghdr, 0);
|
||||||
|
@ -113,10 +118,16 @@ static ssize_t ddsi_udp_conn_write (ddsi_tran_conn_t conn, const nn_locator_t *d
|
||||||
os_sockaddr_storage dstaddr;
|
os_sockaddr_storage dstaddr;
|
||||||
assert(niov <= INT_MAX);
|
assert(niov <= INT_MAX);
|
||||||
ddsi_ipaddr_from_loc(&dstaddr, dst);
|
ddsi_ipaddr_from_loc(&dstaddr, dst);
|
||||||
memset(&msg, 0, sizeof(msg));
|
|
||||||
set_msghdr_iov (&msg, (ddsi_iovec_t *) iov, niov);
|
set_msghdr_iov (&msg, (ddsi_iovec_t *) iov, niov);
|
||||||
msg.msg_name = &dstaddr;
|
msg.msg_name = &dstaddr;
|
||||||
msg.msg_namelen = (socklen_t) os_sockaddrSizeof((os_sockaddr *) &dstaddr);
|
msg.msg_namelen = (socklen_t) os_sockaddrSizeof((os_sockaddr *) &dstaddr);
|
||||||
|
#if !defined(__sun) || defined(_XPG4_2)
|
||||||
|
msg.msg_control = NULL;
|
||||||
|
msg.msg_controllen = 0;
|
||||||
|
#else
|
||||||
|
msg.msg_accrights = NULL;
|
||||||
|
msg.msg_accrightslen = 0;
|
||||||
|
#endif
|
||||||
#if SYSDEPS_MSGHDR_FLAGS
|
#if SYSDEPS_MSGHDR_FLAGS
|
||||||
msg.msg_flags = (int) flags;
|
msg.msg_flags = (int) flags;
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue