<div dir="ltr"><div>Hi, Fazek!<br><br></div>Your patch is really dangerous, especially after we announced the alpha version. The thread-safe access to the tile data object is guaranteed by the wrapper object KisTile. It puts ref() and deref() calls every tile the tile data is accessed. The same applies to the swapper and pooler threads. If you see a problem in thread safety, please describe it here or write a test case. We should also check how the performance is affected by this change. I think the best option now is ti revert this patch and put to the review board with th explanation of the problem it fixes.<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Mar 21, 2016 at 2:50 PM, Boudewijn Rempt <span dir="ltr"><<a href="mailto:boud@valdyas.org" target="_blank">boud@valdyas.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Fazek,<br>
<br>
This is quite dangerous... It's typically the sort of commit that should go through review and testing first because it's the core-most part of Krita. I also get a build failure now, so I'm guessing you're not building the unittests?<br>
<br>
Scanning dependencies of target KisLowMemoryTests<br>
[ 50%] Building CXX object libs/image/tiles3/tests/CMakeFiles/KisLowMemoryTests.dir/kis_low_memory_tests.cpp.o<br>
/home/boud/dev/krita/libs/image/tiles3/tests/kis_low_memory_tests.cpp: In member function ‘void KisLowMemoryTests::hangingTilesTest()’:<br>
/home/boud/dev/krita/libs/image/tiles3/tests/kis_low_memory_tests.cpp:167:52: error: cannot convert ‘KisTileDataSP {aka QSharedPointer<KisTileData>}’ to ‘KisTileData*’ in initialization<br>
     KisTileData *weirdTileData = dstTile->tileData();<br>
                                                    ^<br>
/home/boud/dev/krita/libs/image/tiles3/tests/kis_low_memory_tests.cpp:180:52: error: cannot convert ‘KisTileDataSP {aka QSharedPointer<KisTileData>}’ to ‘KisTileData*’ in initialization<br>
     KisTileData *cowedTileData = dstTile->tileData();<br>
                                                    ^<br>
[ 50%] Linking CXX executable KisPainterTest<br>
libs/image/tiles3/tests/CMakeFiles/KisLowMemoryTests.dir/build.make:62: recipe for target 'libs/image/tiles3/tests/CMakeFiles/KisLowMemoryTests.dir/kis_low_memory_tests.cpp.o' failed<br>
make[2]: *** [libs/image/tiles3/tests/CMakeFiles/KisLowMemoryTests.dir/kis_low_memory_tests.cpp.o] Error 1<br>
CMakeFiles/Makefile2:17296: recipe for target 'libs/image/tiles3/tests/CMakeFiles/KisLowMemoryTests.dir/all' failed<br>
make[1]: *** [libs/image/tiles3/tests/CMakeFiles/KisLowMemoryTests.dir/all] Error 2<div class="HOEnZb"><div class="h5"><br>
<br>
<br>
On Mon, 21 Mar 2016, Fazekas László wrote:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hello all,<br>
<br>
I just modified the internal logic of the tile data management in Krita (T1835 in phabricator). If you encounter any strange behaviour related to tiles please tell me. Specially if the program crashes or complains about remaining tiles when exiting.<br>
<br>
Thanks,<br>
Fazek<br>
<br>
_______________________________________________<br>
Krita mailing list<br>
<a href="mailto:kimageshop@kde.org" target="_blank">kimageshop@kde.org</a><br>
<a href="https://mail.kde.org/mailman/listinfo/kimageshop" rel="noreferrer" target="_blank">https://mail.kde.org/mailman/listinfo/kimageshop</a><br>
<br>
</blockquote>
<br></div></div><span class="HOEnZb"><font color="#888888">
-- <br>
Boudewijn Rempt | <a href="http://www.krita.org" rel="noreferrer" target="_blank">http://www.krita.org</a>, <a href="http://www.valdyas.org" rel="noreferrer" target="_blank">http://www.valdyas.org</a></font></span><br>_______________________________________________<br>
Krita mailing list<br>
<a href="mailto:kimageshop@kde.org">kimageshop@kde.org</a><br>
<a href="https://mail.kde.org/mailman/listinfo/kimageshop" rel="noreferrer" target="_blank">https://mail.kde.org/mailman/listinfo/kimageshop</a><br>
<br></blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature">Dmitry Kazakov</div>
</div>