public class CoroutineLib extends TwoArgFunction
LibFunction which implements the lua standard coroutine
library.
The coroutine library in luaj has the same behavior as the coroutine library in C, but is implemented using Java Threads to maintain the call state between invocations. Therefore it can be yielded from anywhere, similar to the "Coco" yield-from-anywhere patch available for C-based lua. However, coroutines that are yielded but never resumed to complete their execution may not be collected by the garbage collector.
Typically, this library is included as part of a call to either
JsePlatform.standardGlobals() or org.luaj.vm2.lib.jme.JmePlatform#standardGlobals()
Globals globals = JsePlatform.standardGlobals();
System.out.println( globals.get("coroutine").get("running").call() );
To instantiate and use it directly,
link it into your globals table via LuaValue.load(LuaValue) using code such as:
Globals globals = new Globals();
globals.load(new JseBaseLib());
globals.load(new PackageLib());
globals.load(new CoroutineLib());
System.out.println( globals.get("coroutine").get("running").call() );
LibFunction,
JsePlatform,
org.luaj.vm2.lib.jme.JmePlatform,
Lua 5.2 Coroutine Lib Referencename, opcodes_metatableADD, BAND, BNOT, BOR, BXOR, CALL, CONCAT, DIV, EMPTYSTRING, ENV, EQ, FALSE, IDIV, INDEX, LE, LEN, LT, METATABLE, MINUSONE, MOD, MODE, MUL, NEWINDEX, NIL, NILS, NONE, NOVALS, ONE, POW, SHL, SHR, SUB, TBOOLEAN, TFUNCTION, TINT, TLIGHTUSERDATA, TNIL, TNONE, TNUMBER, TOSTRING, TRUE, TSTRING, TTABLE, TTHREAD, TUSERDATA, TVALUE, TYPE_NAMES, UNM, uservalue, ZERO| 构造器和说明 |
|---|
CoroutineLib() |
| 限定符和类型 | 方法和说明 |
|---|---|
LuaValue |
call(LuaValue modname,
LuaValue env)
Perform one-time initialization on the library by creating a table
containing the library functions, adding that table to the supplied environment,
adding the table to package.loaded, and returning table as the return value.
|
call, call, call, invokecheckfunction, classnamestub, getfenv, getmetatable, isfunction, name, optfunction, setfenv, strvalue, type, typenameadd, add, add, and, arg, arg1, argerror, argerror, aritherror, aritherror, arithmt, arithmtwith, assert_, band, band, bnot, bor, bor, buffer, bxor, bxor, call, callmt, checkboolean, checkclosure, checkdouble, checkglobals, checkint, checkinteger, checkjstring, checklong, checkmetatag, checknotnil, checknumber, checknumber, checkstring, checktable, checkthread, checkuserdata, checkuserdata, compareerror, compareerror, comparemt, concat, concat, concatmt, concatTo, concatTo, concatTo, div, div, div, divInto, eq_b, eq, eqmtcall, equals, error, get, get, get, gettable, getuservalue, gt_b, gt_b, gt_b, gt, gt, gt, gteq_b, gteq_b, gteq_b, gteq, gteq, gteq, idiv, idiv, illegal, inext, initupvalue1, invoke, invoke, invoke, invoke, invoke, invokemethod, invokemethod, invokemethod, invokemethod, invokemethod, invokemethod, isboolean, isclosure, isint, isinttype, islong, isnil, isnumber, isstring, istable, isthread, isuserdata, isuserdata, isvalidkey, jcall, jget, jset, len, lenerror, length, listOf, listOf, load, lt_b, lt_b, lt_b, lt, lt, lt, lteq_b, lteq_b, lteq_b, lteq, lteq, lteq, metatableOf, metatag, method, method, method, method, method, method, mod, mod, mod, modFrom, mul, mul, mul, narg, neg, neq_b, neq, next, not, onInvoke, optboolean, optclosure, optdouble, optint, optinteger, optjstring, optlong, optnumber, optstring, opttable, optthread, optuserdata, optuserdata, optvalue, or, pow, pow, pow, powWith, powWith, presize, raweq, raweq, raweq, raweq, raweq, rawget, rawget, rawget, rawlen, rawset, rawset, rawset, rawset, rawset, rawset, rawset, rawsetlist, set, set, set, set, set, set, set, setmetatable, settable, setuservalue, shl, shl, shr, shr, strcmp, strcmp, strongvalue, sub, sub, sub, subargs, subFrom, subFrom, tableOf, tableOf, tableOf, tableOf, tableOf, tableOf, tailcallOf, testfor_b, toboolean, tobyte, tochar, todouble, tofloat, toint, tolong, tonumber, toshort, tostring, toString, touserdata, touserdata, typerror, unimplemented, userdataOf, userdataOf, valueOf, valueOf, valueOf, valueOf, valueOf, valueOf, valueOf, varargsOf, varargsOf, varargsOf, varargsOf, varargsOf, varargsOfargcheck, checkboolean, checkclosure, checkdouble, checkfunction, checkint, checkinteger, checkjstring, checklong, checknotnil, checknumber, checkstring, checktable, checkthread, checkuserdata, checkuserdata, checkvalue, dealias, eval, isfunction, isnil, isnoneornil, isnumber, isstring, istable, isTailcall, isthread, isuserdata, isvalue, optboolean, optclosure, optdouble, optfunction, optint, optinteger, optjstring, optlong, optnumber, optstring, opttable, optthread, optuserdata, optuserdata, optvalue, toboolean, tobyte, tochar, todouble, tofloat, toint, tojstring, tolong, toshort, touserdata, touserdata, typepublic LuaValue call(LuaValue modname, LuaValue env)
call 在类中 TwoArgFunctionmodname - the module name supplied if this is loaded via 'require'.env - the environment to load into, which must be a Globals instance.(this(arg1,arg2)), or LuaValue.NIL if there were none.LuaValue.call(),
LuaValue.call(LuaValue),
LuaValue.call(LuaValue, LuaValue, LuaValue),
LuaValue.invoke(LuaValue, Varargs),
LuaValue.method(String,LuaValue,LuaValue),
LuaValue.method(LuaValue,LuaValue,LuaValue)Copyright © 2020. All rights reserved.