- SIMIX_process_get_name(SIMIX_process_self()),
- SIMIX_host_get_name(SIMIX_host_self()),
- timeout);
-
- if (xbt_fifo_size(pd->msg_selectable_sockets) == 0) {
- /* message didn't arrive yet, wait */
- SIMIX_cond_wait_timeout(pd->msg_select_cond,pd->msg_select_mutex,timeout);
+ SIMIX_process_get_name(SIMIX_process_self()),
+ SIMIX_host_get_name(SIMIX_host_self()), timeout);
+ if (timeout >= 0) {
+ xbt_queue_shift_timed(pd->msg_selectable_sockets,
+ &active_socket, timeout);
+ } else {
+ xbt_queue_shift(pd->msg_selectable_sockets, &active_socket);