Begin or keeps the delivery of coroutine co

Begin or keeps the delivery of coroutine co

The 1st time your resume a coroutine, they begins working its human body. The values val1 , A·A·A· are passed since the arguments on human body purpose. In the event that coroutine has actually yielded, resume restarts it; the principles val1 , A·A·A· were passed as is a result of the yield.

When the coroutine operates without having any errors, resume returns true plus any standards passed away to produce (if coroutine yields) or any beliefs returned because of the body function (if coroutine terminates). If there is any error, resume returns incorrect plus the error information.

coroutine.status (co)

Comes back the position of coroutine co , as a string: “running” , in the event that coroutine was run (definitely, it known as position ); “suspended” , in the event the coroutine is actually suspended in a phone call to yield , or if perhaps this has not begun running however; “normal” when the coroutine was active however operating (that is, it offers resumed another coroutine); and “dead” when the coroutine features complete the looks features, or if perhaps it has quit with an error.

coroutine.wrap (f)

Brings a new coroutine, with human anatomy f . f must be a Lua function. Profits a function that resumes the coroutine everytime it’s called. Any arguments passed with the function behave as the excess arguments to resume . Profits the same principles returned by application , except the very first boolean. In case there are mistake, propagates the error.

coroutine.yield (A·A·A·)

Suspends the execution with the contacting coroutine. The coroutine cannot be run a-c features, a metamethod, or an iterator. Any arguments to yield is passed as higher brings about resume .

5.3 Segments

The bundle collection produces fundamental places for loading and strengthening modules in Lua. They exports two of its functionality directly during the global conditions: require and module . Anything else are exported in a table bundle .

component (name [, A·A·A·])

Produces a component. If there is a desk in package.loaded[name] , this table could be the module. Otherwise, if there’s a major international desk t with all the offered term, this desk will be the component. Otherwise produces a fresh desk t and establishes it as the value of the worldwide label as well as the worth of package.loaded[name] . This features additionally initializes t._NAME making use of provided term, t._M making use of component ( t it self), and t._PACKAGE making use of the package identity (the entire module identity minus final aspect; see below). Finally, module sets t as the brand-new atmosphere of present work in addition to brand-new property value package.loaded[name] , to make sure that need profits t .

If name’s a substance name (which, one with hardware split up by dots), module produces (or reuses, should they already exist) dining tables for every single part. As an example, if name’s a.b.c , then module shop the module table in field c of industry b of worldwide a .

This work can obtain optional choice following the module title, in which each option is a work to be used across the component.

call for (modname)

Loads the provided component. The event begins by exploring the package.loaded desk to ascertain whether modname has already been packed. When it is, next call for returns the worthiness put at plan.loaded[modname] . Otherwise, it attempts to pick a loader for the component.

To locate a loader, call for try directed from the bundle.loaders selection. By altering this collection, we can alter how require searches for a module. The following description is founded on the default setting for bundle.loaders .

First need queries package.preload[modname] . If it provides an appreciate, this appreciate (which should end up being a function) will be the loader. Normally require searches for a Lua loader using the road kept in package.path . If that also fails, they searches for a-c loader utilizing the route kept in package.cpath . If it in addition fails, it tries an all-in-one loader (see package.loaders ).

Comments are closed.