Improve: Set multi-thread compression as a option for remote control

This commit is contained in:
yuanyuanxiang
2025-11-30 08:02:44 +01:00
parent 9e4aeab1c7
commit d6464b48b5
5 changed files with 32 additions and 2 deletions

View File

@@ -118,7 +118,7 @@ IOCPClient::IOCPClient(const State&bExit, bool exit_while_disconnect, int mask,
#if USING_CTX
m_Cctx = ZSTD_createCCtx();
m_Dctx = ZSTD_createDCtx();
auto n = ZSTD_CCtx_setParameter(m_Cctx, ZSTD_c_nbWorkers, 4);
auto n = ZSTD_CCtx_setParameter(m_Cctx, ZSTD_c_nbWorkers, 0);
if (Z_FAILED(n)) {
ZSTD_CCtx_setParameter(m_Cctx, ZSTD_c_nbWorkers, 0);
}
@@ -130,6 +130,18 @@ IOCPClient::IOCPClient(const State&bExit, bool exit_while_disconnect, int mask,
#endif
}
void IOCPClient::SetMultiThreadCompress(int threadNum) {
#if USING_CTX
BOOL failed = TRUE;
if (threadNum > 1) {
failed = Z_FAILED(ZSTD_CCtx_setParameter(m_Cctx, ZSTD_c_nbWorkers, threadNum));
}
if (failed) {
ZSTD_CCtx_setParameter(m_Cctx, ZSTD_c_nbWorkers, 0);
}
#endif
}
IOCPClient::~IOCPClient()
{
m_bIsRunning = FALSE;