Meilleure façon de faire de script lua attendre/pause/sommeil/bloquer pendant quelques secondes?

Je ne peux pas comprendre comment obtenir lua pour faire toute la commune timing trucs, comme

  • sommeil - arrêter toute action sur le thread

  • pause/wait - ne pas aller à la prochaine
    de commande, mais de permettre à d'autres de code dans le
    demande de continuer

  • bloc - ne passez pas à côté de la commande jusqu'à la
    actuel renvoie

Et j'ai lu qu'un

while os.clock()<time_point do 
--nothing
end

mange de temps CPU.

Des suggestions? Est-il un appel d'API je suis absent?

Mise à JOUR: j'ai écrit cette question il y a longtemps à essayer d'obtenir WOW Lua pour la relecture des actions sur le temps (c'est à dire debout, attendre 1 sec, de la danse, attendre 2 sec, s'asseoir. Sans pause, cela n'arrive presque tous dans le même quart de seconde.) Il s'est avéré que WOW avait volontairement désactivé peu près tout ce qui permet de faire une action sur une horloge, car il pourrait se briser, le jeu ou permettre à des robots. J'ai pensé à re-créer une horloge une fois qu'il avait été emporté, j'aurais du faire quelque chose de fou, comme créer un tableau (avec une action et de temps d'exécution), puis d'enregistrer un gestionnaire d'événement sur un tas d'activités courantes, comme le déplacement de la souris, puis dans le même gestionnaire, processus de toute action dont le temps était venu. Le gestionnaire d'événement ne serait pas effectivement se produire toutes les X millisecondes, mais si c'était le cas tous les 2-100 ms, il serait assez proche. Malheureusement, je n'ai jamais essayé.