lua_vmprep.h revision 39bfc06718264cb819a2646ec4cd1e9c421549b9
* contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * Specification for a lua virtual machine /* NEED TO ADD ADDITIONAL PACKAGE PATHS AS PART OF SPEC INSTEAD OF DIR CONFIG */ /* name of base file to load in the vm */ /* APL_CODE_CACHE_STAT | APL_CODE_CACHE_FOREVER | APL_CODE_CACHE_NEVER */ /* APL_SCOPE_ONCE | APL_SCOPE_REQUEST | APL_SCOPE_CONN | APL_SCOPE_SERVER */ /* pool to use for lifecycle if APL_SCOPE_ONCE is set, otherwise unused */ /* Pre-compiled Lua Byte code to load directly. If bytecode_len is >0, * the file part of this structure is ignored for loading purposes, but * it is used for error messages. * Fake out addition of the "apache2" module * the apl_?getvm family of functions is used to create and/or obtain * a handle to a lua state. If there is not an extant vm matching the * spec then a new one is created. /* lua_State* apl_rgetvm(request_rec *r, apl_vm_spec *spec); */ /* returns NULL if the spec requires a request scope */ /* lua_State* apl_cgetvm(conn_rec *r, apl_vm_spec *spec);*/ /* returns NULL if the spec requires a request scope or conn scope */ /* lua_State* apl_sgetvm(server_rec *r, apl_vm_spec *spec); */ * alternate means of getting lua_State (preferred eventually) * Obtain a lua_State which has loaded file and is associated with lifecycle_pool * If one exists, will return extant one, otherwise will create, attach, and return * This does no locking around the lua_State, so if the pool is shared between * threads, locking is up the client. * @lifecycle_pool -> pool whose lifeycle controls the lua_State * @file file to be opened, also used as a key for uniquing lua_States * @cb callback for vm initialization called *before* the file is opened * @ctx a baton passed to cb