Changeset 1c20e22 in mainline
- Timestamp:
- 2006-05-31T16:50:28Z (19 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- c594489
- Parents:
- 5052046
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libc/generic/async.c
r5052046 r1c20e22 247 247 msg_t *msg; 248 248 ipc_callid_t callid; 249 connection_t *conn;250 249 251 250 assert(PS_connection); … … 253 252 futex_down(&async_futex); 254 253 255 conn = PS_connection;256 254 /* If nothing in queue, wait until something appears */ 257 if (list_empty(& conn->msg_queue)) {258 conn->active = 0;255 if (list_empty(&PS_connection->msg_queue)) { 256 PS_connection->active = 0; 259 257 psthread_schedule_next_adv(PS_TO_MANAGER); 260 258 } 261 259 262 msg = list_get_instance( conn->msg_queue.next, msg_t, link);260 msg = list_get_instance(PS_connection->msg_queue.next, msg_t, link); 263 261 list_remove(&msg->link); 264 262 callid = msg->callid; … … 301 299 unsigned long key; 302 300 msg_t *msg; 303 connection_t *conn;304 301 305 302 /* Setup thread local connection pointer */ 306 303 PS_connection = (connection_t *)arg; 307 conn = PS_connection; 308 conn->cthread(conn->callid, &conn->call); 304 PS_connection->cthread(PS_connection->callid, &PS_connection->call); 309 305 310 306 /* Remove myself from connection hash table */ 311 307 futex_down(&async_futex); 312 key = conn->in_phone_hash;308 key = PS_connection->in_phone_hash; 313 309 hash_table_remove(&conn_hash_table, &key, 1); 314 310 futex_up(&async_futex); 315 311 /* Answer all remaining messages with ehangup */ 316 while (!list_empty(& conn->msg_queue)) {317 msg = list_get_instance( conn->msg_queue.next, msg_t, link);312 while (!list_empty(&PS_connection->msg_queue)) { 313 msg = list_get_instance(PS_connection->msg_queue.next, msg_t, link); 318 314 list_remove(&msg->link); 319 315 ipc_answer_fast(msg->callid, EHANGUP, 0, 0);
Note:
See TracChangeset
for help on using the changeset viewer.