Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/c/generic/loc.c

    r8b8c164 r0239846  
    247247        sysarg_t retval = async_data_write_start(exch, name, str_size(name));
    248248       
    249         loc_exchange_end(exch);
    250        
    251249        if (retval != EOK) {
    252250                async_forget(req);
    253                 return retval;
    254         }
    255        
    256         exch = loc_exchange_begin(INTERFACE_LOC_SUPPLIER);
     251                loc_exchange_end(exch);
     252                return retval;
     253        }
     254       
    257255        async_connect_to_me(exch, 0, 0, 0);
    258         loc_exchange_end(exch);
    259        
     256
     257        /*
     258         * First wait for the answer and then end the exchange. The opposite
     259         * order is generally wrong because it may lead to a deadlock under
     260         * certain circumstances.
     261         */
    260262        async_wait_for(req, &retval);
     263        loc_exchange_end(exch);
     264       
    261265        return retval;
    262266}
     
    276280        sysarg_t retval = async_data_write_start(exch, fqsn, str_size(fqsn));
    277281       
    278        
    279282        if (retval != EOK) {
    280283                async_forget(req);
     
    283286        }
    284287       
     288        /*
     289         * First wait for the answer and then end the exchange. The opposite
     290         * order is generally wrong because it may lead to a deadlock under
     291         * certain circumstances.
     292         */
    285293        async_wait_for(req, &retval);
    286294        loc_exchange_end(exch);
Note: See TracChangeset for help on using the changeset viewer.