Lua スクリプト内に、同じ「構造」を使用する複数のライブラリがあります。たとえば、 と を含む a.lua がrequire('b')ありrequire('c')ます。b.lua と c.lua の両方に info 関数があります。b.lua は "b" を出力させ、c.lua は "c" を出力させます。a.lua では、B.lua または C.lua の info() でコルーチンを開始したいと考えています。
これは私の b.lua です:
b = {}
function b.info()
  coroutine.yield()
  print("b")
  print("b2")
end
C.lua も同様の構造ですが、ほとんどの B は C に置き換えられています。コルーチンを開始しようとするとlocal co = coroutine.create(b.info())(通常は一時停止が開始されるため、これも奇妙です)、「メタメソッド/C 呼び出しの境界を越えて譲歩しようとしています」のようなエラーが表示されます"。