Rémi Bernon (@rbernon) commented about dlls/dmime/performance.c:
while ((ptr = list_head(&This->messages))) { struct message *message = LIST_ENTRY(ptr, struct message, entry);
struct list *next = ptr->next; list_remove(&message->entry); list_init(&message->entry); hr = performance_process_message(This, &message->msg, &timeout);
if (hr == DMUS_S_REQUEUE) performance_queue_message(This, message, next);
if (hr == DMUS_S_REQUEUE) performance_queue_message(This, message); if (hr != S_OK) break;
Changing `performance_process_message` return value to `E_PENDING` for instance, I think something like that could work:
```suggestion:-2+0 hr = performance_process_message(This, &message->msg, &timeout); if (hr == DMUS_S_REQUEUE) performance_queue_message(This, message, NULL); else if (hr == E_PENDING) performance_queue_message(This, message, next); if (FAILED(hr)) break; ```