Changes in uspace/srv/net/tcp/sock.c [32d19f7:db81577] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/net/tcp/sock.c
r32d19f7 rdb81577 114 114 *rsock = NULL; 115 115 116 sock = calloc( sizeof(tcp_sockdata_t), 1);116 sock = calloc(1, sizeof(tcp_sockdata_t)); 117 117 if (sock == NULL) 118 118 return ENOMEM; … … 277 277 278 278 socket->backlog = backlog; 279 socket->lconn = calloc( sizeof(tcp_conn_t *), backlog);279 socket->lconn = calloc(backlog, sizeof(tcp_conn_t *)); 280 280 if (socket->lconn == NULL) { 281 281 fibril_mutex_unlock(&socket->lock); … … 293 293 for (i = 0; i < backlog; i++) { 294 294 295 lconn = calloc( sizeof(tcp_sock_lconn_t), 1);295 lconn = calloc(1, sizeof(tcp_sock_lconn_t)); 296 296 if (lconn == NULL) { 297 297 /* XXX Clean up */ … … 779 779 } 780 780 781 /* Grab recv_buffer_lock because of CV wait in tcp_sock_recv_fibril() */ 782 fibril_mutex_lock(&socket->recv_buffer_lock); 783 socket->sock_core = NULL; 784 fibril_mutex_unlock(&socket->recv_buffer_lock); 785 781 786 rc = socket_destroy(NULL, socket_id, &client->sockets, &gsock, 782 787 tcp_free_sock_data); … … 839 844 log_msg(LVL_DEBUG, "tcp_sock_recv_fibril()"); 840 845 846 fibril_mutex_lock(&sock->recv_buffer_lock); 847 841 848 while (true) { 842 849 log_msg(LVL_DEBUG, "call tcp_uc_receive()"); 843 fibril_mutex_lock(&sock->recv_buffer_lock); 844 while (sock->recv_buffer_used != 0) 850 while (sock->recv_buffer_used != 0 && sock->sock_core != NULL) 845 851 fibril_condvar_wait(&sock->recv_buffer_cv, 846 852 &sock->recv_buffer_lock); … … 852 858 sock->recv_error = trc; 853 859 fibril_condvar_broadcast(&sock->recv_buffer_cv); 854 fibril_mutex_unlock(&sock->recv_buffer_lock);855 tcp_sock_notify_data(sock->sock_core);860 if (sock->sock_core != NULL) 861 tcp_sock_notify_data(sock->sock_core); 856 862 break; 857 863 } … … 861 867 sock->recv_buffer_used = data_len; 862 868 fibril_condvar_broadcast(&sock->recv_buffer_cv); 863 fibril_mutex_unlock(&sock->recv_buffer_lock); 864 tcp_sock_notify_data(sock->sock_core); 865 } 869 if (sock->sock_core != NULL) 870 tcp_sock_notify_data(sock->sock_core); 871 } 872 873 fibril_mutex_unlock(&sock->recv_buffer_lock); 866 874 867 875 tcp_uc_delete(sock->conn);
Note:
See TracChangeset
for help on using the changeset viewer.