Changeset 62273d1 in mainline for uspace/srv/taskman/main.c
- Timestamp:
- 2019-08-07T04:27:24Z (5 years ago)
- Children:
- 2f44fafd
- Parents:
- 70d28e8
- git-author:
- Michal Koutný <xm.koutny+hos@…> (2015-10-08 21:46:22)
- git-committer:
- Matthieu Riolo <matthieu.riolo@…> (2019-08-07 04:27:24)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/taskman/main.c
r70d28e8 r62273d1 79 79 async_exchange_end(exch); 80 80 81 // TODO leak? what happens with referenced sessions 81 82 free(sess_ref); 82 83 … … 116 117 int rc = task_set_retval(icall); 117 118 async_answer_0(iid, rc); 119 } 120 121 static void task_exit_event(ipc_callid_t iid, ipc_call_t *icall, void *arg) 122 { 123 printf("%s:%i\n", __func__, __LINE__); 124 // TODO design substitution for taskmon (monitoring) 125 task_id_t id = MERGE_LOUP32(IPC_GET_ARG1(*icall), IPC_GET_ARG2(*icall)); 126 task_terminated(id, (task_exit_t)arg); 118 127 } 119 128 … … 161 170 async_answer_0(iid, ENOMEM); 162 171 } 163 164 172 165 173 /* Create callback connection */ … … 170 178 return; 171 179 } 180 181 /* Remember task_id */ 182 int rc = task_id_intro(icall); 183 184 if (rc != EOK) { 185 async_answer_0(iid, rc); 186 free(sess_ref); 187 return; 188 } 172 189 async_answer_0(iid, EOK); 173 190 191 /* Notify spawners */ 174 192 link_initialize(&sess_ref->link); 175 193 prodcons_produce(&sess_queue, &sess_ref->link); … … 220 238 printf(NAME ": HelenOS task manager\n"); 221 239 240 /* Initialization */ 222 241 prodcons_initialize(&sess_queue); 223 242 int rc = task_init(); … … 226 245 } 227 246 247 rc = async_event_subscribe(EVENT_EXIT, task_exit_event, (void *)EVENT_EXIT); 248 if (rc != EOK) { 249 printf("Cannot register for exit events (%i).\n", rc); 250 return rc; 251 } 252 253 rc = async_event_subscribe(EVENT_FAULT, task_exit_event, (void *)EVENT_FAULT); 254 if (rc != EOK) { 255 printf("Cannot register for fault events (%i).\n", rc); 256 return rc; 257 } 258 228 259 /* We're service too */ 229 260 rc = service_register(SERVICE_TASKMAN); 230 261 if (rc != EOK) { 231 printf("Cannot register at naming service (%i). ", rc);262 printf("Cannot register at naming service (%i).\n", rc); 232 263 return rc; 233 264 }
Note:
See TracChangeset
for help on using the changeset viewer.