I uppgift 3a så ser vi att använder oss av sleep(1) i funktionen tf1 och tf2, detta gör en säker deadlock detta bör tas bort för att undvika deadlock, vi kan också se i funktionen tfs2 att vi först lockar mutex m2 och sen lockar m1 och sedan unlockar först m1 och sedan m2, detta medför en cyklisk väntan och bör ändras för att få bort deadlock.

I uppgift 3b har vi använt oss av pthread_mutex_trylock vilket säkerställer att vi först frågar om vi kan ta mutexen, skulle det inte gå så väljer vi att lämna tillbaka den vi tagit. Då den ena har båda mutexerna så kommer den vägra att släppa de, vilket i sin tur kommer minska att den andra får tag i dem.  


VISSERLIGEN KORREKT MEN DU SAKNAR REFERENSER TILL MANUALSIDAN. Fx.
