• Bug#1109782: unblock: 7zip/25.00+dfsg-1 (7/13)

    From Bastian Germann@21:1/5 to All on Wed Jul 23 19:40:02 2025
    [continued from previous message]

    */

    #ifndef Z7_ST
    +
    +#ifdef _WIN32
    + // we don't use chunk multithreading inside lzma2 stream.
    + // so we don't set xzProps.lzma2Props.numThreadGroups.
    + if (_numThreadGroups > 1)
    + xzProps.numThreadGroups = _numThreadGroups;
    +#endif

    UInt32 numThreads = _numThreads;

    @@ -1183,6 +1193,8 @@
    CMultiMethodProps::SetMethodThreadsTo_IfNotFinded(oneMethodInfo, numThreads);
    }

    + // printf("\n====== GetProcessGroupAffinity : \n");
    +
    UInt64 cs = _numSolidBytes;
    if (cs != XZ_PROPS_BLOCK_SIZE_AUTO)
    oneMethodInfo.AddProp_BlockSize2(cs);
    diff -Nru 7zip-24.09+dfsg/CPP/7zip/Archive/Zip/ZipUpdate.cpp 7zip-25.00+dfsg/CPP/7zip/Archive/Zip/ZipUpdate.cpp
    --- 7zip-24.09+dfsg/CPP/7zip/Archive/Zip/ZipUpdate.cpp 2024-08-09 12:00:00.000000000 +0200
    +++ 7zip-25.00+dfsg/CPP/7zip/Archive/Zip/ZipUpdate.cpp 2025-07-03 11:00:00.000000000 +0200
    @@ -250,13 +250,26 @@

    HRESULT CreateEvents()
    {
    - WRes wres = CompressEvent.CreateIfNotCreated_Reset();
    + const WRes wres = CompressEvent.CreateIfNotCreated_Reset();
    return HRESULT_FROM_WIN32(wres);
    }

    - HRESULT CreateThread()
    + // (group < 0) means no_group.
    + HRESULT CreateThread_with_group(
    +#ifdef _WIN32
    + int group
    +#endif
    + )
    {
    - WRes wres = Thread.Create(CoderThread, this);
    + // tested in win10: If thread is created by another thread,
    + // child thread probably uses same group as parent thread.
    + // So we don't need to send (group) to encoder in created thread.
    + const WRes wres =
    +#ifdef _WIN32
    + group >= 0 ?
    + Thread.Create_With_Group(CoderThread, this, (unsigned)group) :
    +#endif
    + Thread.Create(CoderThread, this);
    retu