<html>
 <body>
  <div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
   <table bgcolor="#f9f3c9" width="100%" cellpadding="8" style="border: 1px #c9c399 solid;">
    <tr>
     <td>
      This is an automatically generated e-mail. To reply, visit:
      <a href="http://git.reviewboard.kde.org/r/100439/">http://git.reviewboard.kde.org/r/100439/</a>
     </td>
    </tr>
   </table>
   <br />








<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
 <p style="margin-top: 0;">On January 24th, 2011, 6 p.m., <b>Dario Freddi</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  



<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; border-collapse: collapse; margin: 2px padding: 2px;">
 <thead>
  <tr>
   <th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; font-size: 9pt; padding: 4px 8px; text-align: left;">
    <a href="http://git.reviewboard.kde.org/r/100439/diff/1/?file=7465#file7465line51" style="color: black; font-weight: bold; text-decoration: underline;">service.cpp</a>
    <span style="font-weight: normal;">

     (Diff revision 1)

    </span>
   </th>
  </tr>
 </thead>

 <tbody style="background-color: #e4d9cb; padding: 4px 8px; text-align: center;">
  <tr>

   <td colspan="2"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>
   <td colspan="2"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">TelepathyService::~TelepathyService()</pre></td>

  </tr>
 </tbody>




 
 



 <tbody>

  <tr>
    <th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" align="right"><font size="2"></font></th>
    <td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>
    <th bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font size="2">51</font></th>
    <td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">    <span class="n">m_controller</span><span class="o">-&gt;</span><span class="n">shutdown</span><span class="p">();</span></pre></td>
  </tr>

 </tbody>

</table>

  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Triggering shutdown in the destructor is a good idea only if the shutdown is a sync process. Otherwise, given that we&#39;re the first in the chain and all of the created objects are our children, we might end up having some weird crashes on exit caused by having a function called on a dead object.

Especially, I see that most of the classes are emitting signal on shutdown, so I think it&#39;s quite realistic to expect some crashes on exit.
</pre>
 </blockquote>



 <p>On January 28th, 2011, 3 p.m., <b>George Goldberg</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">I was fairly sure I&#39;d dealt with all the shutdown/destruction issues before posting this patch, but I&#39;ll check again.</pre>
 </blockquote>







</blockquote>
<pre style="margin-left: 1em; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Looking at the code again, I realise why I thought it was OK. Although some signals and slots are called, they are connected directly (this is a single-threaded application, and they are all qmetatypes), so I think that there is nothing asynchronous going on in the shutdown procedure. However, if you can see any code that contradicts this, please shout.</pre>
<br />




<p>- George</p>


<br />
<p>On January 24th, 2011, 4:31 p.m., George Goldberg wrote:</p>






<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('http://git.reviewboard.kde.orgrb/images/review_request_box_top_bg.png'); background-position: left top; background-repeat: repeat-x; border: 1px black solid;">
 <tr>
  <td>

<div>Review request for Telepathy.</div>
<div>By George Goldberg.</div>


<p style="color: grey;"><i>Updated Jan. 24, 2011, 4:31 p.m.</i></p>




<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">This is a initial review-request for my major refactoring of telepathy-nepomuk-service:

The motivation is that it will make the code cleaner, more maintainable and also make it possible to easily add support for syncing channel participants to Nepomuk who are not in the buddy-list but are present in channels.

*THIS IS NOT FINISHED* - the unit tests are incomplete, and avatar, group and capabilities support is not fully ported from the old version of t-n-s. I&#39;m putting this up here for preliminary review comments however, because it&#39;s blocking a lot of development at the moment, so I&#39;d like to get it moving again.

This patch also ports t-n-s to tpqt4 0.5+ and to the latest version of shared-desktop-ontologies where most of our ontology changes have been merged upstream. It also requires a as-yet-not-merged version of telepathy-testlib in order to compile the unit tests successfully.

Initial feedback welcome.</pre>
  </td>
 </tr>
</table>





<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">

 <li>CMakeLists.txt <span style="color: grey">(5f4441d36279ca8921b9b7a28661e2a279812250)</span></li>

 <li>abstract-storage.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>abstract-storage.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>account.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>account.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>cmake/modules/FindTelepathyQt4.cmake <span style="color: grey">(4bed08aebfb1005c75cf45ab95422c408e909137)</span></li>

 <li>contact.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>contact.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>controller.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>controller.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>nepomuk-storage.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>nepomuk-storage.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>nepomuktelepathyservice.h <span style="color: grey">(ccc433d8ca29d4670602b4a154e3bdf7e2a708c0)</span></li>

 <li>nepomuktelepathyservice.cpp <span style="color: grey">(7f1badbbc007201da68936e5e8f05bd315c16e43)</span></li>

 <li>service.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>service.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>telepathy.trig <span style="color: grey">(fb1cead4e7852f86f445fbe0294157c737c7fed5)</span></li>

 <li>telepathyaccount.h <span style="color: grey">(d0283eabb6ef4b708e83039f24c5accc52927037)</span></li>

 <li>telepathyaccount.cpp <span style="color: grey">(e683bbe32374a59b6003d1b324f6eb0f4c2f5cd0)</span></li>

 <li>telepathyaccountmonitor.h <span style="color: grey">(4720fca7933004f59acc0137b11dd04dfbf8e98a)</span></li>

 <li>telepathyaccountmonitor.cpp <span style="color: grey">(5e1a0413c0f5477b7deef62180200045732f179e)</span></li>

 <li>telepathycontact.h <span style="color: grey">(d49651257ef145faedb0d4229e35af0f2113bd8b)</span></li>

 <li>telepathycontact.cpp <span style="color: grey">(dcba982be550b05cf9a5d85abf1ab8ddfcaa52e0)</span></li>

 <li>test-backdoors.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>test-backdoors.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>tests/CMakeLists.txt <span style="color: grey">(1a643487e5d85e808f7b96a199891a18fab4f360)</span></li>

 <li>tests/account-test.h <span style="color: grey">(d9a1349d2f97bb84ef9df5a672eeb933ddfb2a6d)</span></li>

 <li>tests/account-test.cpp <span style="color: grey">(712932bed689bceedbe3f5fa60fc757759fdf895)</span></li>

 <li>tests/controller-test.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>tests/controller-test.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>tests/storage-test.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>tests/storage-test.cpp <span style="color: grey">(PRE-CREATION)</span></li>

</ul>

<p><a href="http://git.reviewboard.kde.org/r/100439/diff/" style="margin-left: 3em;">View Diff</a></p>




  </td>
 </tr>
</table>








  </div>
 </body>
</html>