Slightly better practice because wait can be randomly interupted.
This commit is contained in:
parent
4248dbc71d
commit
42404c531d
1 changed files with 11 additions and 8 deletions
|
@ -45,17 +45,20 @@ public class ChunkIOExecutor
|
||||||
ChunkIOProvider task = tasks.get(key);
|
ChunkIOProvider task = tasks.get(key);
|
||||||
if (task != null)
|
if (task != null)
|
||||||
{
|
{
|
||||||
if (!pool.remove(task) && !task.runFinished()) // If it wasn't in the pool, and run hasn't finished, then wait for the async thread.
|
if (!pool.remove(task)) // If it wasn't in the pool, and run hasn't finished, then wait for the async thread.
|
||||||
{
|
{
|
||||||
synchronized(task)
|
while (!task.runFinished())
|
||||||
{
|
{
|
||||||
try
|
synchronized(task)
|
||||||
{
|
{
|
||||||
task.wait();
|
try
|
||||||
}
|
{
|
||||||
catch (InterruptedException e)
|
task.wait();
|
||||||
{
|
}
|
||||||
e.printStackTrace(); // Something happened? Log it?
|
catch (InterruptedException e)
|
||||||
|
{
|
||||||
|
e.printStackTrace(); // Something happened? Log it?
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue