kein Deadlock (trivial).
forM [ 1 .. num ] $ \ p -> forkIO $ forever $ do atomically $ do take $ left p take $ right p atomically $ drop $ left p atomically $ drop $ right p take f = do busy <- readTVar f when busy $ retry writeTVar f Truenicht fair.