<div dir="ltr"><div style="color:rgb(33,33,33);font-size:13px">Hey folks¬†</div><div style="color:rgb(33,33,33);font-size:13px"><br></div><div style="color:rgb(33,33,33);font-size:13px">Attempted to post this last week while I was joining the list. I think it bounced. Please ignore if it is a repeat. I have not seen any responses and I am sad.</div><div style="color:rgb(33,33,33);font-size:13px"><br></div><div style="color:rgb(33,33,33);font-size:13px">I found some great discussion of a previous issue* with nested Stream.parallel operations here and hoping I might find some answers to a related question.</div><div style="color:rgb(33,33,33);font-size:13px">*¬†<a href="http://cs.oswego.edu/pipermail/concurrency-interest/2014-May/012652.html" target="_blank">http://cs.oswego.edu/pipermail/concurrency-interest/2014-May/012652.html</a><br></div><div style="color:rgb(33,33,33);font-size:13px"><br></div><div style="color:rgb(33,33,33);font-size:13px">I am using a ConcurrentHashMap.compute operation in an outer Stream.parallel forEach operation. A library used in the compute method also uses Stream.parallel.</div><div style="color:rgb(33,33,33);font-size:13px"><br></div><div style="color:rgb(33,33,33);font-size:13px">I have written a test that illustrates the issue and explores different implementations in 215 lines of code.</div><div style="color:rgb(33,33,33);font-size:13px"><a href="https://gist.github.com/dstuebe/89361f64dc44a935e53d0a49f149317c#file-nestedparallel-java" target="_blank">https://gist.github.com/dstuebe/89361f64dc44a935e53d0a49f149317c#file-nestedparallel-java</a><br></div><div style="color:rgb(33,33,33);font-size:13px"><br></div><div style="color:rgb(33,33,33);font-size:13px">The code deadlocks with the following stack trace:</div><div style="color:rgb(33,33,33);font-size:13px"><a href="https://gist.github.com/dstuebe/89361f64dc44a935e53d0a49f149317c#file-stacktrace-txt" target="_blank">https://gist.github.com/dstuebe/89361f64dc44a935e53d0a49f149317c#file-stacktrace-txt</a><br></div><div style="color:rgb(33,33,33);font-size:13px"><br></div><div style="color:rgb(33,33,33);font-size:13px">I do not understand why line 87 (the compute block) appears to be called recursively leading to deadlock when I use Stream.parallel for the outer loop.</div><div style="color:rgb(33,33,33);font-size:13px"><br></div><div style="color:rgb(33,33,33);font-size:13px">Best</div><div style="color:rgb(33,33,33);font-size:13px"><br></div><div style="color:rgb(33,33,33);font-size:13px">David</div></div>