<table><tr><td style="">abizjak created this revision.<br />abizjak added a reviewer: Frameworks.<br />abizjak requested review of this revision.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D26635">View Revision</a></tr></table><br /><div><strong>REVISION SUMMARY</strong><div><p>After fork(), exit() invokes atexit handlers, which can result in a lockup if an atexit handler uses thread synchronization facilities, since all but the current thread no longer exist. An example backtrace can be found in the linked bug report. Fix it by using _exit() instead of exit().</p>

<p>BUG: 404652</p></div></div><br /><div><strong>TEST PLAN</strong><div><p>I don't know the exact environment required to trigger this bug, but one precondition is to trigger generation of thumbnails via this code; maybe browsing folders with PDF files will do that. Once you see thumbnail.so processes staying around, you must have hit this bug. This patch should prevent this issue from occurring, and it did on my system.</p></div></div><br /><div><strong>REPOSITORY</strong><div><div>R373 Image Thumbnailers</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D26635">https://phabricator.kde.org/D26635</a></div></div><br /><div><strong>AFFECTED FILES</strong><div><div>ps/gscreator.cpp</div></div></div><br /><div><strong>To: </strong>abizjak, Frameworks<br /></div>