Skip to content

Commit b31daf5

Browse files
committed
fixed:ModulePlugin_Loader_Destory unlock is incorrent
modify:reload supported plugin
1 parent 2179822 commit b31daf5

File tree

3 files changed

+65
-2
lines changed

3 files changed

+65
-2
lines changed

XEngine_Source/XEngine_ModulePlugin/ModulePlugin_Loader/ModulePlugin_Loader.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,6 @@ bool CModulePlugin_Loader::ModulePlugin_Loader_Destory()
233233

234234
st_Locker.lock();
235235
stl_MapLoader.clear();
236-
st_Locker.unlock_shared();
236+
st_Locker.unlock();
237237
return true;
238238
}
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
33
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
4-
<LocalDebuggerCommandArguments>-r 0</LocalDebuggerCommandArguments>
4+
<LocalDebuggerCommandArguments>
5+
</LocalDebuggerCommandArguments>
56
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
67
</PropertyGroup>
78
</Project>

XEngine_Source/XEngine_ServiceApp/XEngine_HttpApp/XEngine_TaskGet/TaskGet_Reload.cpp

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,69 @@ bool HTTPTask_TaskGet_Reload(LPCXSTR lpszClientAddr, LPCXSTR lpszOPCode)
2525
}
2626
else if (1 == _ttxoi(lpszOPCode))
2727
{
28+
ModulePlugin_Loader_Destory();
29+
delete st_PluginLibConfig.pStl_ListPlugin;
30+
delete st_PluginLuaConfig.pStl_ListPlugin;
31+
st_PluginLibConfig.pStl_ListPlugin = NULL;
32+
st_PluginLuaConfig.pStl_ListPlugin = NULL;
2833

34+
ModulePlugin_Loader_Init();
35+
if (!ModuleConfigure_Json_PluginFile(st_ServiceConfig.st_XPlugin.tszPluginLib, &st_PluginLibConfig))
36+
{
37+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,请求操作配置重载失败,加载Lib插件配置失败,错误:%lX"), lpszClientAddr, ModuleConfigure_GetLastError());
38+
return false;
39+
}
40+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求操作配置重载成功,加载Lib插件配置成功"), lpszClientAddr);
41+
if (!ModuleConfigure_Json_PluginFile(st_ServiceConfig.st_XPlugin.tszPluginLua, &st_PluginLuaConfig))
42+
{
43+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,请求操作配置重载失败,加载Lua插件配置失败,错误:%lX"), lpszClientAddr, ModuleConfigure_GetLastError());
44+
return false;
45+
}
46+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求操作配置重载成功,加载lua插件配置成功"), lpszClientAddr);
47+
48+
{
49+
list<XENGINE_PLUGININFO>::const_iterator stl_ListIterator = st_PluginLibConfig.pStl_ListPlugin->begin();
50+
for (int i = 1; stl_ListIterator != st_PluginLibConfig.pStl_ListPlugin->end(); stl_ListIterator++, i++)
51+
{
52+
if (stl_ListIterator->bEnable)
53+
{
54+
if (ModulePlugin_Loader_Insert(stl_ListIterator->tszPluginMethod, stl_ListIterator->tszPluginFile, 0))
55+
{
56+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,重载Lib模块插件中,当前第:%d 个加载成功,方法:%s,路径:%s"), lpszClientAddr, i, stl_ListIterator->tszPluginMethod, stl_ListIterator->tszPluginFile);
57+
}
58+
else
59+
{
60+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,重载Lib模块插件中,当前第:%d 个加载失败,方法:%s,路径:%s,错误:%lX"), lpszClientAddr, i, stl_ListIterator->tszPluginMethod, stl_ListIterator->tszPluginFile, ModulePlugin_GetLastError());
61+
}
62+
}
63+
else
64+
{
65+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _X("HTTP客户端:%s,重载Lib模块插件中,当前第:%d 个加载失败,因为没有启用,方法:%s,路径:%s"), lpszClientAddr, i, stl_ListIterator->tszPluginMethod, stl_ListIterator->tszPluginFile);
66+
}
67+
}
68+
}
69+
{
70+
list<XENGINE_PLUGININFO>::const_iterator stl_ListIterator = st_PluginLuaConfig.pStl_ListPlugin->begin();
71+
for (int i = 1; stl_ListIterator != st_PluginLuaConfig.pStl_ListPlugin->end(); stl_ListIterator++, i++)
72+
{
73+
if (stl_ListIterator->bEnable)
74+
{
75+
if (ModulePlugin_Loader_Insert(stl_ListIterator->tszPluginMethod, stl_ListIterator->tszPluginFile, 1))
76+
{
77+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,重载Lua模块插件中,当前第:%d 个加载成功,方法:%s,路径:%s"), lpszClientAddr, i, stl_ListIterator->tszPluginMethod, stl_ListIterator->tszPluginFile);
78+
}
79+
else
80+
{
81+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_ERROR, _X("HTTP客户端:%s,重载Lua模块插件中,当前第:%d 个加载失败,方法:%s,路径:%s,错误:%lX"), lpszClientAddr, i, stl_ListIterator->tszPluginMethod, stl_ListIterator->tszPluginFile, ModulePlugin_GetLastError());
82+
}
83+
}
84+
else
85+
{
86+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_WARN, _X("HTTP客户端:%s,重载Lua模块插件中,当前第:%d 个加载失败,因为没有启用,方法:%s,路径:%s"), lpszClientAddr, i, stl_ListIterator->tszPluginMethod, stl_ListIterator->tszPluginFile);
87+
}
88+
}
89+
}
90+
XLOG_PRINT(xhLog, XENGINE_HELPCOMPONENTS_XLOG_IN_LOGLEVEL_INFO, _X("HTTP客户端:%s,请求重载插件成功,Lib插件:%d 个,Lua插件:%d 个"), lpszClientAddr, st_PluginLibConfig.pStl_ListPlugin->size(), st_PluginLuaConfig.pStl_ListPlugin->size());
2991
}
3092
return true;
3193
}

0 commit comments

Comments
 (0)