D10824: Delete IdleSlave having temporary authorization

Chinmoy Ranjan Pradhan noreply at phabricator.kde.org
Mon Mar 5 17:34:31 UTC 2018


chinmoyr added a comment.


  I haven't yet tried your patch (which btw involves the http ioslave right?) but I am quite sure that exit() is not called for file ioslave after interrupting the application. I have placed the debug statements inside exit() as well as before every exit() call and I am not seeing any output.
  
  That aside here's what I have observed till now,
  After IdleSlave is created, inside `dispatchLoop()` SlaveBase waits in this line
  
    if (d->appConnection.hasTaskAvailable() || d->appConnection.waitForIncomingTask(ms)) {
  
  with `appConnection` having no tasks available.
  After deleting the IdleSlave `waitForIncomingTask` returns false because the `Connection` object in IdleSlave was destroyed which interrupted the connection and  changed the socket state from `QAbstractSocket::ConnectedState` (It's merely a speculation. I haven't verified it yet). Then the variable `ret` is assigned -1. Since the connection was interrupted, SlaveBase returns from `dispatchLoop` and in `FileProtocol` kdemain returns thus terminating the process.
  
  Please fill me in if you think I have missed something.

REPOSITORY
  R303 KInit

REVISION DETAIL
  https://phabricator.kde.org/D10824

To: chinmoyr, dfaure, #frameworks
Cc: #frameworks, michaelh
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-frameworks-devel/attachments/20180305/8aca4eb0/attachment.html>


More information about the Kde-frameworks-devel mailing list