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_len = (ddsi_iov_len_t)len; /* windows uses unsigned, POISX size_t */
 | 
			
		||||
 | 
			
		||||
  memset (&msghdr, 0, sizeof (msghdr));
 | 
			
		||||
 | 
			
		||||
  msghdr.msg_name = &src;
 | 
			
		||||
  msghdr.msg_namelen = srclen;
 | 
			
		||||
  msghdr.msg_iov = &msg_iov;
 | 
			
		||||
  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 {
 | 
			
		||||
    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;
 | 
			
		||||
  assert(niov <= INT_MAX);
 | 
			
		||||
  ddsi_ipaddr_from_loc(&dstaddr, dst);
 | 
			
		||||
  memset(&msg, 0, sizeof(msg));
 | 
			
		||||
  set_msghdr_iov (&msg, (ddsi_iovec_t *) iov, niov);
 | 
			
		||||
  msg.msg_name = &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
 | 
			
		||||
  msg.msg_flags = (int) flags;
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue