Fork us on GitHub Follow us on Facebook Follow us on Twitter

Changeset 92307f1 in mainline


Ignore:
Timestamp:
2010-03-02T22:52:27Z (12 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master
Children:
7d31f7c, 858fc90
Parents:
8ab2074
Message:

Get rid of a superfluos synchronization variable.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/net/tl/udp/udp.c

    r8ab2074 r92307f1  
    420420        struct sockaddr *               addr;
    421421        size_t                                  addrlen;
    422         fibril_rwlock_t                 lock;
    423422        ipc_call_t                              answer;
    424423        int                                             answer_count;
     
    434433
    435434        socket_cores_initialize( & local_sockets );
    436         fibril_rwlock_initialize( & lock );
    437435
    438436        while( keep_on_going ){
     
    449447                                break;
    450448                        case NET_SOCKET:
    451                                 fibril_rwlock_write_lock( & lock );
    452449                                * SOCKET_SET_SOCKET_ID( answer ) = SOCKET_GET_SOCKET_ID( call );
    453450                                res = socket_create( & local_sockets, app_phone, NULL, SOCKET_SET_SOCKET_ID( answer ));
    454                                 fibril_rwlock_write_unlock( & lock );
    455451                                if( res == EOK ){
    456452                                        if( tl_get_ip_packet_dimension( udp_globals.ip_phone, & udp_globals.dimensions, DEVICE_INVALID_ID, & packet_dimension ) == EOK ){
     
    465461                                res = data_receive(( void ** ) & addr, & addrlen );
    466462                                if( res == EOK ){
    467                                         fibril_rwlock_read_lock( & lock );
    468463                                        fibril_rwlock_write_lock( & udp_globals.lock );
    469464                                        res = socket_bind( & local_sockets, & udp_globals.sockets, SOCKET_GET_SOCKET_ID( call ), addr, addrlen, UDP_FREE_PORTS_START, UDP_FREE_PORTS_END, udp_globals.last_used_port );
    470465                                        fibril_rwlock_write_unlock( & udp_globals.lock );
    471                                         fibril_rwlock_read_unlock( & lock );
    472466                                        free( addr );
    473467                                }
     
    476470                                res = data_receive(( void ** ) & addr, & addrlen );
    477471                                if( res == EOK ){
    478                                         fibril_rwlock_read_lock( & lock );
    479472                                        fibril_rwlock_write_lock( & udp_globals.lock );
    480473                                        res = udp_sendto_message( & local_sockets, SOCKET_GET_SOCKET_ID( call ), addr, addrlen, SOCKET_GET_DATA_FRAGMENTS( call ), SOCKET_SET_DATA_FRAGMENT_SIZE( answer ), SOCKET_GET_FLAGS( call ));
     
    484477                                                answer_count = 2;
    485478                                        }
    486                                         fibril_rwlock_read_unlock( & lock );
    487479                                        free( addr );
    488480                                }
    489481                                break;
    490482                        case NET_SOCKET_RECVFROM:
    491                                 fibril_rwlock_read_lock( & lock );
    492483                                fibril_rwlock_write_lock( & udp_globals.lock );
    493484                                res = udp_recvfrom_message( & local_sockets, SOCKET_GET_SOCKET_ID( call ), SOCKET_GET_FLAGS( call ), & addrlen );
    494485                                fibril_rwlock_write_unlock( & udp_globals.lock );
    495                                 fibril_rwlock_read_unlock( & lock );
    496486                                if( res > 0 ){
    497487                                        * SOCKET_SET_READ_DATA_LENGTH( answer ) = res;
     
    502492                                break;
    503493                        case NET_SOCKET_CLOSE:
    504                                 fibril_rwlock_write_lock( & lock );
    505494                                fibril_rwlock_write_lock( & udp_globals.lock );
    506495                                res = socket_destroy( udp_globals.net_phone, SOCKET_GET_SOCKET_ID( call ), & local_sockets, & udp_globals.sockets, NULL );
    507496                                fibril_rwlock_write_unlock( & udp_globals.lock );
    508                                 fibril_rwlock_write_unlock( & lock );
    509497                                break;
    510498                        case NET_SOCKET_GETSOCKOPT:
Note: See TracChangeset for help on using the changeset viewer.