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

Changeset 482c86f in mainline


Ignore:
Timestamp:
2009-04-05T21:09:59Z (13 years ago)
Author:
Jiri Svoboda <jirik.svoboda@…>
Branches:
lfn, master
Children:
a78d001
Parents:
0175246
Message:

NS was forgetting to hangup phones. One phone was leaked for every load attempt and when all 16 phones were exhausted, NS would lock up.

Location:
uspace
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/libc/generic/loader.c

    r0175246 r482c86f  
    243243                return rc;
    244244
     245        ipc_hangup(ldr->phone_id);
     246        ldr->phone_id = 0;
    245247        return EOK;
    246248}
  • uspace/srv/loader/main.c

    r0175246 r482c86f  
    179179       
    180180        ipc_data_write_finalize(callid, arg_buf, buf_len);
    181         ipc_answer_0(rid, EOK);
    182181       
    183182        arg_buf[buf_len] = '\0';
     
    199198        if (argv == NULL) {
    200199                free(arg_buf);
    201                 ipc_answer_0(callid, ENOMEM);
    202200                ipc_answer_0(rid, ENOMEM);
    203201                return;
    204202        }
    205        
     203
    206204        /*
    207205         * Fill argv with argument pointers
     
    219217        argc = n;
    220218        argv[n] = NULL;
     219
     220        ipc_answer_0(rid, EOK);
    221221}
    222222
  • uspace/srv/ns/ns.c

    r0175246 r482c86f  
    325325        retval = ipc_forward_fast(callid, hs->phone, IPC_GET_ARG2(*call),
    326326            IPC_GET_ARG3(*call), 0, IPC_FF_NONE);
    327        
    328327out:
    329328        if (!(callid & IPC_CALLID_NOTIFICATION))
     
    358357        int rc = ipc_forward_fast(csr->callid, phone, IPC_GET_ARG2(csr->call),
    359358                IPC_GET_ARG3(csr->call), 0, IPC_FF_NONE);
    360        
     359
    361360        free(csr);
     361        ipc_hangup(phone);
    362362}
    363363
Note: See TracChangeset for help on using the changeset viewer.