/*!
  \page lua_coroutine_page コルーチンの利用

  Lua では並列動作を行う仕組みとして、スレッドの代わりにコルーチンと呼ばれる仕組みを用意しています。コルーチンとは、関数呼び出しを途中で中断し、再開させられる仕組みです。

  例えば、キャラクターに「右に進んで、１秒待って、左に進んで...」という行動をとらせたい場合、コルーチンを用いた実装は以下のように記述できます。

  \code
-- !!! このクラスは以下で紹介する
local scheduler = Schedulfe:new()

function character_move()
   move_right()

   -- !!! 以下の Scheduler:wait() でこの関数を一時中断する
   -- !!! Scheduler クラスの実装で、1000 msec 後に処理が再開されるようになっている
   Scheduler:wait(1000)

   move_left()
end

while true do
   -- !!! コルーチンの中断、再開の処理は、このメソッドを呼び出して管理する
   scheduler:execute()
   delay(100)
end \endcode

  便利ですね。\n
  以下に、スケジューラのソースコードと、スケジューラの動作サンプルを示します。ここで示すサンプルは <a href="http://svn.sourceforge.jp/view/trunk/libs/lua/samples/bindCpp.cpp?view=co&root=qrobosdk">bindCpp.cpp</a> を用いて実行します。

  コルーチンの管理クラス \n
  <a href="http://svn.sourceforge.jp/view/trunk/libs/lua/Scheduler.lua?view=co&root=qrobosdk">Scheduler.lua</a>
  \include Scheduler.lua

  \n
  複数のコルーチンを実行するサンプル \n
  <a href="http://svn.sourceforge.jp/view/trunk/libs/lua/samples/scheduler_sample.lua?view=co&root=qrobosdk">scheduler_sample.lua</a>
  \include scheduler_sample.lua

  実行結果
  \verbatim
% ./bindCpp scheduler_sample.lua
--- 1 [times] ---
<1>
[1]
--- 2 [times] ---
<2>
[2]
--- 3 [times] ---
<3>
--- 4 [times] ---
<4>
--- 5 [times] ---
--- 6 [times] ---
--- 7 [times] ---
[1]
--- 8 [times] ---
[2]
--- 9 [times] ---
end \endverbatim

  \n
  指定時間だけ待機を行うサンプル \n
  <a href="http://svn.sourceforge.jp/view/trunk/libs/lua/samples/wait_sample.lua?view=co&root=qrobosdk">wait_sample.lua</a>

  \include wait_sample.lua

  実行結果
  \verbatim
% ./bindCpp wait_sample.lua
start
0 [sec]
1 [sec]
2 [sec]
3 [sec]
end \endverbatim

  簡単ですね。\n
  より本格的なサンプルについては \ref fly_flapp_page をご覧下さい。

  \n
  \section lua_coroutine_comment_section コメントページ

  - http://sourceforge.jp/forum/forum.php?forum_id=18515

  \n
  \section lua_coroutine_reference_section 参考

  - 本 <a href="http://www.amazon.co.jp/gp/product/4862460291?ie=UTF8&tag=qrobosdk-22&linkCode=as2&camp=247&creative=7399&creativeASIN=4862460291">「Game Programming Gems 6 日本語版」</a><img src="http://www.assoc-amazon.jp/e/ir?t=qrobosdk-22&l=as2&o=9&a=4862460291" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
  - 本 <a href="http://www.amazon.co.jp/gp/product/4797348550?ie=UTF8&tag=qrobosdk-22&linkCode=as2&camp=247&creative=7399&creativeASIN=4797348550">「スクリプト言語による効率的ゲーム開発 C/C++へのLua組込み実践」</a><img src="http://www.assoc-amazon.jp/e/ir?t=qrobosdk-22&l=as2&o=9&a=4797348550" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />

  \n
*/
