use modifyMVar