Changes in uspace/srv/net/socket/socket_client.c [aadf01e:5814ef7] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/net/socket/socket_client.c
raadf01e r5814ef7 421 421 int socket_id; 422 422 services_t service; 423 ipcarg_t fragment_size; 424 ipcarg_t header_size; 423 425 424 426 // find the appropriate service … … 478 480 return socket_id; 479 481 } 480 if(ERROR_OCCURRED((int) async_req_3_3(phone, NET_SOCKET, socket_id, 0, service, NULL, (ipcarg_t *) &socket->data_fragment_size, (ipcarg_t *) &socket->header_size))){482 if(ERROR_OCCURRED((int) async_req_3_3(phone, NET_SOCKET, socket_id, 0, service, NULL, &fragment_size, &header_size))){ 481 483 fibril_rwlock_write_unlock(&socket_globals.lock); 482 484 free(socket); 483 485 return ERROR_CODE; 484 486 } 487 socket->data_fragment_size = (size_t) fragment_size; 488 socket->header_size = (size_t) header_size; 485 489 // finish the new socket initialization 486 490 socket_initialize(socket, socket_id, phone, service); … … 580 584 fibril_rwlock_write_unlock(&socket_globals.lock); 581 585 fibril_condvar_wait(&socket->accept_signal, &socket->accept_lock); 586 // drop the accept lock to avoid deadlock 587 fibril_mutex_unlock(&socket->accept_lock); 582 588 fibril_rwlock_write_lock(&socket_globals.lock); 589 fibril_mutex_lock(&socket->accept_lock); 583 590 } 584 591 -- socket->blocked; … … 801 808 fibril_rwlock_read_unlock(&socket_globals.lock); 802 809 fibril_condvar_wait(&socket->receive_signal, &socket->receive_lock); 810 // drop the receive lock to avoid deadlock 811 fibril_mutex_unlock(&socket->receive_lock); 803 812 fibril_rwlock_read_lock(&socket_globals.lock); 813 fibril_mutex_lock(&socket->receive_lock); 804 814 } 805 815 -- socket->blocked;
Note:
See TracChangeset
for help on using the changeset viewer.