How can i stop wait(1) from yielding this script??

my attempt

repeat
local pos,vis2 = cam:WorldToScreenPoint(s.Head.Position)
coroutine.wrap(function()
num = num + 1
wait(1)
end)
wait()
until not vis2 or num == 2

The coroutine is suppose to make the script ignore the wait(1) right? why isn't it working?