<br><br><div class="gmail_quote">On Mon, Jul 9, 2012 at 7:18 PM, David Faure <span dir="ltr"><<a href="mailto:faure@kde.org" target="_blank">faure@kde.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">On Monday 09 July 2012 16:53:31 Vishesh Handa wrote:<br>
> I don't think it's a threading problem cause m_initMutex is locked before<br>
> deleting it, and before accessing it.<br>
<br>
</div>That doesn't help. MainModel::executeQuery gets a pointer to a ClientModel<br>
inside the lock, and then return an iterator which keeps using that<br>
ClientModel outside the lock (or its ClientConnection, more precisely).<br></blockquote><div><br>Yes, but the iterator which it receives is of type Soprano::Client::ClientQueryResultIterator. This iterator just contains an iterator id, and a pointer to the model. Before each operation performed on the iterator, it check if the model pointer is not null .. aha!<br>
<br>The pointer will always be 'not null'.<br><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
So this opens the door for crashes, whenever the code that deletes the model<br>
is run.<br></blockquote><div><br>
So you're right, we cannot delete the model.<br><br>Or maybe we could use some kind of pointer wrapper which check for deletions. I'm not sure if Qt provides this. Either way it seems messy.<br><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">

<div class="im HOEnZb"><br>
--<br>
David Faure, <a href="mailto:faure@kde.org">faure@kde.org</a>, <a href="http://www.davidfaure.fr" target="_blank">http://www.davidfaure.fr</a><br>
Sponsored by Nokia to work on KDE, incl. KDE Frameworks 5<br>
<br>
</div><div class="HOEnZb"><div class="h5">_______________________________________________<br>
Nepomuk mailing list<br>
<a href="mailto:Nepomuk@kde.org">Nepomuk@kde.org</a><br>
<a href="https://mail.kde.org/mailman/listinfo/nepomuk" target="_blank">https://mail.kde.org/mailman/listinfo/nepomuk</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br><span style="color:rgb(192,192,192)">Vishesh Handa</span><br><br>