スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Plutoを使ってLuaの状態を永続化(コルーチン編)

Lua Programming GemsにPlutoの記事があるみたい。持ってないけど。
さて、次はコルーチンを使ってみよう。 READMEに書いてあるように、coroutine.yieldをpermsに入れておくこと。

require "pluto"
local co = coroutine.create(function()
  print("coroutine 1")
  coroutine.yield()
  print("coroutine 2")
  coroutine.yield()
  print("coroutine 3")
end)
print("main 1")
coroutine.resume(co)
print("main 2")
local perms = {}
perms[coroutine.yield] = "coroutine.yield"
io.open("mycoroutine","wb"):write(pluto.persist(perms,co))

require "pluto"
local perms = {}
perms["coroutine.yield"] = coroutine.yield
local co = pluto.unpersist(perms,io.open("mycoroutine","rb"):read("*a"))
print("main' 1")
coroutine.resume(co)
print("main' 2")
coroutine.resume(co)
print("main' 3")
コルーチンも普通に永続化出来た。
スポンサーサイト

テーマ : プログラミング | ジャンル : コンピュータ

コメントの投稿

非公開コメント

プロフィール

minoki

Author:minoki
好きなプログラミング言語:
Haskell,Lua
GitHubアカウント
Twitter

最新記事
月別アーカイブ
カテゴリ
検索フォーム
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。