Kann ich verhindern, dass ein Linux-Benutzerraum-Pthread in kritischem Code nachgibt?

Ich arbeite an einer User-Space-App für ein eingebettetes Linux-Projekt mit dem 2.6.24.3-Kernel. Meine App überträgt Daten zwischen zwei Dateiknoten, indem sie zwei Pthreads erstellt, die jeweils in den Energiesparmodus versetzt werden, bis eine asynchrone E / A-Operation abgeschlossen ist. Anschließend wird ein Beendigungshandler ausgeführt.

Die Completion-Handler müssen nachverfolgen, wie viele Übertragungen ausstehen, und eine Handvoll verknüpfter Listen verwalten, die ein Thread hinzufügt und der andere entfernt.

// sleep here until events arrive or time out expires
for(;;) {
    no_of_events = io_getevents(ctx, 1, num_events, events, &timeout);
    // Process each aio event that has completed or thrown an error
    for (i=0; i<no_of_events; i++) {
        // Get pointer to completion handler
        io_complete = (io_callback_t) events[i].data;
        // Get pointer to data object
        iocb = (struct iocb *) events[i].obj;
        // Call completion handler and pass it the data object
        io_complete(ctx, iocb, events[i].res, events[i].res2);
    }
}

Meine Frage ist das ...

Gibt es eine einfache Möglichkeit, um zu verhindern, dass der derzeit aktive Thread nachgibt, während der Completion-Handler ausgeführt wird, anstatt die Mutex- / Spin-Lock-Route zu durchlaufen?

Oder kann Linux nicht so konfiguriert werden, dass bei gehaltener Mutex- / Spin-Sperre kein Pthread ausgegeben wird?