private Throwable tryDoWork( WorkUnit<Material,W> unit, int tryCount, boolean block ) { if ( tryLock( tryCount, unit, block ) ) { WorkUnit<Material,W> batch = grabBatch(); try { return doSynchronizedWork( batch ); } finally { unlock(); unparkAnyWaiters(); markAsDone( batch ); } } return null; }
private Throwable tryDoWork( WorkUnit<Material,W> unit, int tryCount, boolean block ) { if ( tryLock( tryCount, unit, block ) ) { WorkUnit<Material,W> batch = grabBatch(); try { return doSynchronizedWork( batch ); } finally { unlock(); unparkAnyWaiters(); markAsDone( batch ); } } return null; }