<div dir="ltr"><div class="gmail_extra">Hi Tobias,<br><br><div class="gmail_quote">On Fri, Dec 6, 2013 at 1:39 PM, Tobias Pietzsch <span dir="ltr"><<a href="mailto:pietzsch@mpi-cbg.de" target="_blank">pietzsch@mpi-cbg.de</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
On Dec 6, 2013, at 7:28 PM, Johannes Schindelin <<a href="mailto:Johannes.Schindelin@gmx.de">Johannes.Schindelin@gmx.de</a>> wrote:<br>
<br>
> Hi Lee,<br>
><br>
> On Fri, 6 Dec 2013, Lee Kamentsky wrote:<br>
>><br>
>> On Fri, Dec 6, 2013 at 10:10 AM, Tobias Pietzsch <<a href="mailto:pietzsch@mpi-cbg.de">pietzsch@mpi-cbg.de</a>>wrote:<br>
>><br>
>>> Problem: Did anyone think about the possibility of deadlocks?<br>
>><br>
>> Nice catch, Tobias<br>
><br>
> Does anybody have a different reaction than "Oh well, that's right, we<br>
> cannot use the ExecutorService, then, but instead need to adapt the<br>
> ThreadService so it handles this one right"?<br>
<br>
Here, I have a different reaction:<br>
As I pointed out, this has been done exactly right in Java 7 Fork/Join framework (by people who presumably put more thought and experience into it than we could).<br>
If the majority insists that we reimplement something similar, then at least let us use the same interfaces.<br>
<br></blockquote><div>It looks to me like a computation has to know whether or not it is being run inside a ForkJoinThread. If so, it calls ForkJoinTask.invoke() to complete the computation and if not it calls invoke on the pool. I don't think  this completely solves our problem - if X calls Y which invokes Z on the thread, then Z should invoke on the pool, but if X invokes Y which invokes Z, then Z should invoke on the ForkJoinTask. The mechanism should make its decision based on the thread identity and not burden the framework with keeping track of where it is. So I say that they didn't get it right and that we can do better.</div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
best regards,<br>
Tobias<br>
<br>
><br>
> Ciao,<br>
> Dscho<br>
<span class="HOEnZb"><font color="#888888">><br>
> --<br>
> --<br>
> Please avoid top-posting, and please make sure to reply-to-all!<br>
><br>
> Mailing list web interface: <a href="http://groups.google.com/group/fiji-devel" target="_blank">http://groups.google.com/group/fiji-devel</a><br>
><br>
> ---<br>
> You received this message because you are subscribed to the Google Groups "Fiji-devel" group.<br>
> To unsubscribe from this group and stop receiving emails from it, send an email to <a href="mailto:fiji-devel%2Bunsubscribe@googlegroups.com">fiji-devel+unsubscribe@googlegroups.com</a>.<br>
> For more options, visit <a href="https://groups.google.com/groups/opt_out" target="_blank">https://groups.google.com/groups/opt_out</a>.<br>
<br>
</font></span></blockquote></div><br></div></div>