[C] mutex Problem

Blubbedibuh

Grünschnabel
Hallo erstmal,

ich hab hier ein kleines Problem bei einer Fragestellung. Das was ich bis jetzt versucht habe, hat mich nur immer zu einem Deadlock gebracht.
Aber hier erst mal die Frage, und ein Danke schon mal für die Antworten :)

Ergänzen Sie im folgenden Code die Funktion swap so, dass Sie beliebig mehrfach parallel aufgerufen werden kann und stets korrekt das n-te mit dem k-ten Element des Arrays x vertauscht. Dabei müssen Deadlocks ausgeschlossen sein!
Verwenden Sie zur Synchronisation ausschliesslich die Mutex-Variablen des Arrays m. Wird swap parallel mit unabhängigen Parametern aufgerufen, so darf kein Thread unnötig warten, z.B. dürfen sich die Aufrufe swap(1,3) und swap(2,4) nicht behindern.
Die Parameter müssen nicht auf den korrekten Wertebereich (0..99) hin überprüft werden. Beachten Sie jedoch, dass die Parameter n und k auch gleich sein können!

Der zu Ergänzende Code ist folgender:

Code:
...
int x[100];
mutex m[100];

void swap (int n, int k) {
int tmp;






tmp= x[n];
x[n] = x[k];
x[k] = tmp;



}


Ich wäre über jedwege Antwort dankbar.

Gruß Blubbedibuh
 
Zurück