| --- src/com/onionnetworks/fec/io/FECFile.java.orig 2015-10-18 15:38:26.000000000 +0000 |
| +++ src/com/onionnetworks/fec/io/FECFile.java 2015-10-18 16:06:51.159486000 +0000 |
| @@ -10,7 +10,9 @@ |
| import com.onionnetworks.fec.FECCodeFactory; |
| import com.onionnetworks.io.RAF; |
| import com.onionnetworks.util.*; |
| -import EDU.oswego.cs.dl.util.concurrent.*; |
| + |
| +import java.util.concurrent.locks.ReadWriteLock; |
| +import java.util.concurrent.locks.ReentrantReadWriteLock; |
| |
| /** |
| * This class provides the necessary file IO routines to go along with the raw |
| @@ -129,9 +131,9 @@ |
| this.raf = new RAF(f,mode); // synched RandomAccessFile |
| |
| // Create the locks. |
| - locks = new ReadWriteLock[blockCount]; |
| + locks = new ReentrantReadWriteLock[blockCount]; |
| for (int i=0;i<locks.length;i++) { |
| - locks[i] = new ReentrantWriterPreferenceReadWriteLock(); |
| + locks[i] = new ReentrantReadWriteLock(); |
| } |
| |
| // add the default exception handler. |
| @@ -258,7 +260,7 @@ |
| byte[] b = null; |
| |
| try { |
| - locks[blockNum].readLock().acquire(); |
| + locks[blockNum].readLock().lock(); |
| try { |
| |
| // This raf check then pp access is safe because all |
| @@ -296,9 +298,9 @@ |
| return; |
| } |
| } finally { |
| - locks[blockNum].readLock().release(); |
| + locks[blockNum].readLock().unlock(); |
| } |
| - } catch (InterruptedException e) { |
| + } catch (Exception e) { |
| throw new InterruptedIOException(e.toString()); |
| } |
| |
| @@ -342,13 +344,13 @@ |
| |
| int result = -1; |
| try { |
| - locks[blockNum].writeLock().acquire(); |
| + locks[blockNum].writeLock().lock(); |
| try { |
| result = write0(pkt,blockNum,stripeNum); |
| } finally { |
| - locks[blockNum].writeLock().release(); |
| + locks[blockNum].writeLock().unlock(); |
| } |
| - } catch (InterruptedException e) { |
| + } catch (Exception e) { |
| throw new InterruptedIOException(e.toString()); |
| } |
| |
| @@ -444,16 +446,16 @@ |
| } |
| |
| try { |
| - locks[blockNum].writeLock().acquire(); |
| + locks[blockNum].writeLock().lock(); |
| try { |
| // seek and write the decoded block. |
| raf.seekAndWrite(blockNum*blockSize,b,0,b.length); |
| // Update the placement to show decoded entries. |
| pp.setBlockDecoded(blockNum); |
| } finally { |
| - locks[blockNum].writeLock().release(); |
| + locks[blockNum].writeLock().unlock(); |
| } |
| - } catch (InterruptedException e) { |
| + } catch (Exception e) { |
| throw new InterruptedIOException(e.toString()); |
| } |
| |
| @@ -468,7 +470,7 @@ |
| */ |
| public void acquireAllWriteLocks() throws InterruptedException { |
| for (int i=0;i<locks.length;i++) { |
| - locks[i].writeLock().acquire(); |
| + locks[i].writeLock().lock(); |
| } |
| } |
| |
| @@ -479,7 +481,7 @@ |
| */ |
| public void releaseAllWriteLocks() throws InterruptedException { |
| for (int i=0;i<locks.length;i++) { |
| - locks[i].writeLock().release(); |
| + locks[i].writeLock().unlock(); |
| } |
| } |
| |