<table><tr><td style="">rjvbb updated this revision to Diff 43922.<br />rjvbb added a comment.
</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/D16218">View Revision</a></tr></table><br /><div><div><p>Drops the potentially unsafe qDebug output in the signal handler, makes <tt style="background: #ebebeb; font-size: 13px;">handlingSignal</tt> an <tt style="background: #ebebeb; font-size: 13px;">std::atomic_bool</tt> (since we can use locks here anyway) and adds copious comments.</p>

<p>Contrary to what I wrote before the 2-stage mechanism does work when the pipe is "flushed", and it turns out this is required to prevent multiple firing from QSocketNotifier (which seems to react to the presence of unread data on the pipe rather than to write operations, at least in Qt 5.9).</p>

<p>This means <tt style="background: #ebebeb; font-size: 13px;">signalReceived</tt> is somewhat redudant. I do actually like how this variable makes the mechanism use the last signal from a signal "burst" but am not married to it either.</p></div></div><br /><div><strong>CHANGES SINCE LAST UPDATE</strong><div><a href="https://phabricator.kde.org/D16218?vs=43662&id=43922">https://phabricator.kde.org/D16218?vs=43662&id=43922</a></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D16218">https://phabricator.kde.org/D16218</a></div></div><br /><div><strong>AFFECTED FILES</strong><div><div>kdevplatform/shell/core.cpp<br />
kdevplatform/shell/core_p.h</div></div></div><br /><div><strong>To: </strong>rjvbb, KDevelop, kfunk<br /><strong>Cc: </strong>aaronpuchert, brauch, kfunk, arrowd, kdevelop-devel, glebaccon, antismap, iodelay, vbspam, geetamc, Pilzschaf, akshaydeo, surgenight<br /></div>