The Lua C API is efficient and lightweight. There are a few important header files we need to be familiar with before writing any C code. These files are the following:
- lua.h: Provides all the functions needed to work with Lua. All functions in this file are prefixed with lua_.
- luaxlib.h: Uses the public API exposed in lua.h to provide higher levels of abstraction for common tasks. All functions in this file are prefixed with luaL_.
- lualib.h: Provides the standard Lua libraries. All functions in this file are also prefixed with luaL_.
Lua does not allocate any global memory. Instead it stores all of its states in a structure called lua_State. This structure contains everything that the Lua runtime needs to operate. Putting a mutex lock around your lua_State object is a fast and easy way to make sure any Lua instance is thread safe. It's perfectly...