- smx_req_t req = xbt_heap_pop(req_todo);
- if(req)
- DEBUG4("Popped request %s (%d) of %s; now %d requests waiting",
- SIMIX_request_name(req->issuer->request.call),
- req->issuer->request.call,
- req->issuer->name,xbt_heap_size(req_todo));
- return req;
+ int i;
+ smx_req_t req = NULL;
+ int nthreads = SIMIX_context_get_parallel_threads();
+
+ for(i=0; i < nthreads; i++){
+ if((req = xbt_swag_extract(req_lists[i]))){
+ DEBUG3("Popped request %s (%d) of %s",
+ SIMIX_request_name(req->issuer->request.call),
+ req->issuer->request.call,
+ req->issuer->name);
+ return req;
+ }
+ }
+
+ return NULL;