I have written the following code, and so far in all my tests it seems as if I have written a working Mutex for my 4 Threads, but I would like to get someone else's opinion on the validity of my solution. typedef struct Mutex{    int turn;    int * waiting;    int num_processes;} Mutex;void enterLock(Mutex * lock, int id){       int i;    for(i = 0; i < lock->num_processes; i++){        lock->waiting[id] = 1;        if (i != id && lock->waiting[i])            i = -1;        lock->waiting[id] = 0;    }    printf(ID %d Entered\n,id);}void leaveLock(Mutex * lock, int id){    printf(ID %d Left\n,id);    lock->waiting[id] = 0;}
Self-written Mutex for 2+ Threads
c;multithreading;posix