Luanti 5.16.0-dev
Loading...
Searching...
No Matches
AsyncWorkerThread Class Reference

#include <s_async.h>

Inheritance diagram for AsyncWorkerThread:
Collaboration diagram for AsyncWorkerThread:

Public Member Functions

virtual ~AsyncWorkerThread ()
void * run () override
Public Member Functions inherited from Thread
 Thread (const std::string &name="")
virtual ~Thread ()
bool start ()
bool stop ()
bool wait ()
bool isCurrentThread () const
bool isRunning () const
bool stopRequested () const
std::thread::id getThreadId () const
bool getReturnValue (void **ret) const
bool bindToProcessor (unsigned int proc_number)
bool setPriority (int prio)
Public Member Functions inherited from ScriptApiBase
 ScriptApiBase (ScriptingType type)
 ScriptApiBase ()
virtual ~ScriptApiBase ()
 DISABLE_CLASS_COPY (ScriptApiBase)
void loadMod (const std::string &script_path, const std::string &mod_name)
void loadScript (const std::string &script_path)
void runCallbacksRaw (int nargs, RunCallbacksMode mode, const char *fxn)
void addObjectReference (ServerActiveObject *cobj)
void removeObjectReference (ServerActiveObject *cobj)
ScriptingType getType ()
IGameDefgetGameDef ()
ServergetServer ()
const std::string & getOrigin ()
void setOriginDirect (const char *origin)
void setOriginFromTableRaw (int index, const char *fxn)
void clientOpenLibs (lua_State *L)
void checkSetByBuiltin ()
Public Member Functions inherited from ScriptApiSecurity
void initializeSecurity ()
void initializeSecurityClient ()
void initializeSecuritySSCSM ()

Protected Member Functions

 AsyncWorkerThread (AsyncEngine *jobDispatcher, const std::string &name)
bool checkPathInternal (const std::string &abs_path, bool write_required, bool *write_allowed) override
 Should check if the given path may be accessed.
Protected Member Functions inherited from ScriptApiBase
lua_State * getStack ()
void realityCheck ()
void scriptError (int result, const char *fxn)
void stackDump (std::ostream &o)
void setGameDef (IGameDef *gamedef)
EnvironmentgetEnv ()
void setEnv (Environment *env)
EmergeThreadgetEmergeThread ()
void setEmergeThread (EmergeThread *emerge)
void objectrefGetOrCreate (lua_State *L, ServerActiveObject *cobj)
void pushPlayerHPChangeReason (lua_State *L, const PlayerHPChangeReason &reason)
Protected Member Functions inherited from LuaHelper
template<>
bool readParam (lua_State *L, int index)
template<>
s16 readParam (lua_State *L, int index)
template<>
int readParam (lua_State *L, int index)
template<>
float readParam (lua_State *L, int index)
template<>
v2s16 readParam (lua_State *L, int index)
template<>
v2f readParam (lua_State *L, int index)
template<>
v3f readParam (lua_State *L, int index)
template<>
std::string_view readParam (lua_State *L, int index)
template<>
std::string readParam (lua_State *L, int index)
template<>
std::string_view readParam (lua_State *L, int index)
 Read a string from Lua state L at index without copying it.
Protected Member Functions inherited from ScriptApiSecurity
virtual bool modNamesAreTrusted ()
 Specify if the mod names during init time(!) can be trusted.

Private Attributes

AsyncEnginejobDispatcher = nullptr
bool isErrored = false

Friends

class AsyncEngine

Additional Inherited Members

Static Public Member Functions inherited from Thread
static ThreadgetCurrentThread ()
static void setName (const std::string &name)
static unsigned int getNumberOfProcessors ()
Static Public Member Functions inherited from ScriptApiBase
static std::string getCurrentModNameInsecure (lua_State *L)
 Returns the currently running mod, only during init time.
Static Public Member Functions inherited from ScriptApiSecurity
static bool isSecure (lua_State *L)
static void getGlobalsBackup (lua_State *L)
static bool safeLoadString (lua_State *L, std::string_view code, const char *chunk_name)
 Loads a string as Lua code safely (doesn't allow bytecode).
static bool safeLoadFile (lua_State *L, const char *path, const char *display_name=nullptr)
 Loads a file as Lua code safely (doesn't allow bytecode).
static std::string getCurrentModName (lua_State *L)
 Returns the currently running mod, only during init time.
static bool checkWhitelisted (lua_State *L, const std::string &setting)
 Check if mod is whitelisted in the given setting.
static bool checkPath (lua_State *L, const char *path, bool write_required, bool *write_allowed=nullptr)
 Checks if mods are allowed to read (and optionally write) to the path.
Static Protected Member Functions inherited from LuaHelper
template<typename T>
static T readParam (lua_State *L, int index)
 Read a value using a template type T from Lua state L at index.
template<typename T>
static T readParam (lua_State *L, int index, const T &default_value)
 Read a value using a template type T from Lua state L at index.
Static Protected Member Functions inherited from ScriptApiSecurity
static bool checkPathWithGamedef (lua_State *L, const std::string &abs_path, bool write_required, bool *write_allowed)
Protected Attributes inherited from Thread
std::string m_name
Protected Attributes inherited from ScriptApiBase
std::recursive_mutex m_luastackmutex
std::string m_last_run_mod
int m_lock_recursion_count {}
std::thread::id m_owning_thread

Constructor & Destructor Documentation

◆ ~AsyncWorkerThread()

AsyncWorkerThread::~AsyncWorkerThread ( )
virtual

References Thread::isRunning(), and sanity_check.

Here is the call graph for this function:

◆ AsyncWorkerThread()

AsyncWorkerThread::AsyncWorkerThread ( AsyncEngine * jobDispatcher,
const std::string & name )
protected

References ScriptApiBase::ScriptApiBase(), Thread::Thread(), AsyncEngine, g_settings, ScriptApiBase::getStack(), ScriptApiSecurity::initializeSecurity(), isErrored, jobDispatcher, and ScriptApiBase::setGameDef().

Here is the call graph for this function:

Member Function Documentation

◆ checkPathInternal()

bool AsyncWorkerThread::checkPathInternal ( const std::string & abs_path,
bool write_required,
bool * write_allowed )
overrideprotectedvirtual

Should check if the given path may be accessed.

If write_required is true test for write access, if false test for read access.

Parameters
abs_pathabsolute file/directory path, may not exist
write_requiredwas write access requested?
write_allowedoutput parameter (nullable): set to true if writing is allowed
Returns
true if access is allowed

Implements ScriptApiSecurity.

References MainMenuScripting::checkPathAccess(), ScriptApiSecurity::checkPathWithGamedef(), FATAL_ERROR, ScriptApiBase::getStack(), and jobDispatcher.

Here is the call graph for this function:

◆ run()

void * AsyncWorkerThread::run ( )
overridevirtual

◆ AsyncEngine

friend class AsyncEngine
friend

References AsyncEngine, and jobDispatcher.

Referenced by AsyncWorkerThread(), and AsyncEngine.

Member Data Documentation

◆ isErrored

bool AsyncWorkerThread::isErrored = false
private

Referenced by AsyncWorkerThread(), and run().

◆ jobDispatcher

AsyncEngine* AsyncWorkerThread::jobDispatcher = nullptr
private

The documentation for this class was generated from the following files: