mirror of
https://github.com/SapphireServer/Sapphire.git
synced 2025-04-27 22:57:45 +00:00
have watchdog remove the lock file when finished loading the module
should be fixed fr fr this time ong
This commit is contained in:
parent
d2d451e670
commit
451f059bb7
3 changed files with 8 additions and 7 deletions
|
@ -64,15 +64,15 @@ foreach(_scriptDir ${children})
|
||||||
COMMAND ${CMAKE_COMMAND} -E remove "${SCRIPT_LIB_DIR}/script_${_name}.exp"
|
COMMAND ${CMAKE_COMMAND} -E remove "${SCRIPT_LIB_DIR}/script_${_name}.exp"
|
||||||
COMMAND ${CMAKE_COMMAND} -E remove "${SCRIPT_LIB_DIR}/script_${_name}.lib"
|
COMMAND ${CMAKE_COMMAND} -E remove "${SCRIPT_LIB_DIR}/script_${_name}.lib"
|
||||||
COMMAND ${CMAKE_COMMAND} -E remove "${SCRIPT_LIB_DIR}/script_${_name}.ilk"
|
COMMAND ${CMAKE_COMMAND} -E remove "${SCRIPT_LIB_DIR}/script_${_name}.ilk"
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy "${SCRIPT_LIB_DIR}/script_${_name}.dll" ${SCRIPT_POSTBUILD_DIR}${ScriptTargetName}.dll_LOCK
|
COMMAND ${CMAKE_COMMAND} -E copy "${SCRIPT_LIB_DIR}/script_${_name}.dll" ${SCRIPT_POSTBUILD_DIR}${ScriptTargetName}_LOCK
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${SCRIPT_LIB_DIR}/script_${_name}.dll" ${SCRIPT_POSTBUILD_DIR}${ScriptTargetName}.dll
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${SCRIPT_LIB_DIR}/script_${_name}.dll" ${SCRIPT_POSTBUILD_DIR}${ScriptTargetName}.dll
|
||||||
COMMAND ${CMAKE_COMMAND} -E remove ${SCRIPT_POSTBUILD_DIR}${ScriptTargetName}.dll_LOCK
|
COMMAND ${CMAKE_COMMAND} -E remove ${SCRIPT_POSTBUILD_DIR}${ScriptTargetName}_LOCK
|
||||||
)
|
)
|
||||||
else()
|
else()
|
||||||
add_custom_command(TARGET "script_${_name}" POST_BUILD
|
add_custom_command(TARGET "script_${_name}" POST_BUILD
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:${ScriptTargetName}> ${SCRIPT_POSTBUILD_DIR}$<TARGET_FILE_NAME:${ScriptTargetName}>_LOCK
|
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:${ScriptTargetName}> ${SCRIPT_POSTBUILD_DIR}${ScriptTargetName}_LOCK
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different $<TARGET_FILE:${ScriptTargetName}> ${SCRIPT_POSTBUILD_DIR}
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different $<TARGET_FILE:${ScriptTargetName}> ${SCRIPT_POSTBUILD_DIR}
|
||||||
COMMAND ${CMAKE_COMMAND} -E remove ${SCRIPT_POSTBUILD_DIR}$<TARGET_FILE_NAME:${ScriptTargetName}>_LOCK
|
COMMAND ${CMAKE_COMMAND} -E remove ${SCRIPT_POSTBUILD_DIR}${ScriptTargetName}_LOCK
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
|
@ -81,6 +81,8 @@ namespace Sapphire::Scripting
|
||||||
|
|
||||||
void NativeScriptMgr::queueScriptReload( const std::string& name )
|
void NativeScriptMgr::queueScriptReload( const std::string& name )
|
||||||
{
|
{
|
||||||
|
std::scoped_lock lock( m_mutex );
|
||||||
|
|
||||||
auto info = m_loader.getScriptInfo( name );
|
auto info = m_loader.getScriptInfo( name );
|
||||||
if( !info )
|
if( !info )
|
||||||
return;
|
return;
|
||||||
|
@ -91,7 +93,6 @@ namespace Sapphire::Scripting
|
||||||
if( !unloadScript( info ) )
|
if( !unloadScript( info ) )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
std::scoped_lock lock( m_mutex );
|
|
||||||
m_scriptLoadQueue.push( libPath );
|
m_scriptLoadQueue.push( libPath );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -75,7 +75,8 @@ Sapphire::Scripting::ScriptInfo* Sapphire::Scripting::ScriptLoader::loadModule(
|
||||||
fs::path dest( cacheDir /= f.filename().string() );
|
fs::path dest( cacheDir /= f.filename().string() );
|
||||||
|
|
||||||
// make sure the module has finished building before trying to copy it
|
// make sure the module has finished building before trying to copy it
|
||||||
if( fs::exists( f.string() + "_LOCK" ) )
|
const std::string readyFile( ( f.parent_path() / f.stem() ).string() + "_LOCK" );
|
||||||
|
if( fs::exists( readyFile ) )
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
|
||||||
try
|
try
|
||||||
|
@ -112,7 +113,6 @@ Sapphire::Scripting::ScriptInfo* Sapphire::Scripting::ScriptLoader::loadModule(
|
||||||
info->library_path = f.string();
|
info->library_path = f.string();
|
||||||
|
|
||||||
m_scriptMap.insert( std::make_pair( f.stem().string(), info ) );
|
m_scriptMap.insert( std::make_pair( f.stem().string(), info ) );
|
||||||
|
|
||||||
return info;
|
return info;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue