Package freenet.support.api.LockableRandomAccessBuffer

Examples of freenet.support.api.LockableRandomAccessBuffer.RAFLock.unlock()


            assertTrue(a.isLocked());
            assertFalse(b.isLocked());
            assertEquals(PooledFileRandomAccessBuffer.getOpenFDs(), 1);
            assertEquals(PooledFileRandomAccessBuffer.getClosableFDs(), 0);
        } finally {
            lock.unlock();
            assertFalse(a.isLocked());
            assertEquals(PooledFileRandomAccessBuffer.getOpenFDs(), 1);
            assertEquals(PooledFileRandomAccessBuffer.getClosableFDs(), 1);
        }
        a.close();
View Full Code Here


    public void testLocksB() throws IOException {
        PooledFileRandomAccessBuffer.setMaxFDs(1);
        PooledFileRandomAccessBuffer a = construct(0);
        PooledFileRandomAccessBuffer b = construct(0);
        RAFLock lock = b.lockOpen();
        lock.unlock();
        a.close();
        b.close();
        a.free();
        b.free();
        assertEquals(PooledFileRandomAccessBuffer.getOpenFDs(), 0);
View Full Code Here

        assertEquals(PooledFileRandomAccessBuffer.getClosableFDs(), 1);
        RAFLock lb = b.lockOpen();
        assertEquals(PooledFileRandomAccessBuffer.getOpenFDs(), 2);
        assertEquals(PooledFileRandomAccessBuffer.getClosableFDs(), 0);
        la.unlock();
        lb.unlock();
        assertEquals(PooledFileRandomAccessBuffer.getOpenFDs(), 2);
        assertEquals(PooledFileRandomAccessBuffer.getClosableFDs(), 2);      
        a.close();
        b.close();
    }
View Full Code Here

        assertEquals(PooledFileRandomAccessBuffer.getClosableFDs(), 1);
        RAFLock lb = b.lockOpen();
        assertEquals(PooledFileRandomAccessBuffer.getOpenFDs(), 2);
        assertEquals(PooledFileRandomAccessBuffer.getClosableFDs(), 0);
        la.unlock();
        lb.unlock();
        assertEquals(PooledFileRandomAccessBuffer.getOpenFDs(), 2);
        assertEquals(PooledFileRandomAccessBuffer.getClosableFDs(), 2);
        a.close();
        b.close();
    }
View Full Code Here

                                s.wait();
                            } catch (InterruptedException e) {
                                // Ignore.
                            }
                    }
                    lock.unlock();
                    synchronized(s) {
                        s.success = true;
                    }
                } catch (IOException e) {
                    e.printStackTrace();
View Full Code Here

        }
        assertEquals(PooledFileRandomAccessBuffer.getOpenFDs(), 1);
        assertTrue(a.isOpen());
        assertFalse(b.isOpen());
        // Now release lock.
        lock.unlock();
        // Wait for it to proceed.
        synchronized(s) {
            while(!(s.hasLocked || s.hasFinished))
                s.wait();
            assertTrue(s.hasLocked);
View Full Code Here

            byte[][] ret = new byte[blocksForDecode()][];
            for(int i=0;i<ret.length;i++)
                ret[i] = readBlock(i);
            return ret;
        } finally {
            lock.unlock();
        }
    }

    private void triggerAllCrossSegmentCallbacks() {
        SplitFileFetcherCrossSegmentStorage[] crossSegmentsByBlockCopy;
View Full Code Here

                    blocksFetched[i] = (short)i;
                }
                succeeded = true;
            }
        } finally {
            lock.unlock();
        }
    }

    final int totalBlocks() {
        return dataBlocks + crossSegmentCheckBlocks + checkBlocks;
View Full Code Here

                    blocksFetched[slotNumber] = -1;
                    blockChooser.onUnSuccess(blockNumber);
                    Logger.error(this, "Unable to write downloaded block to disk: "+e, e);
                    throw e;
                } finally {
                    lock.unlock();
                }
                if(crossSegmentsByBlock != null && blockNumber < crossSegmentsByBlock.length) {
                    callback = crossSegmentsByBlock[blockNumber];
                }
                nextBlockNumber = (short) blockChooser.getBlockNumber(keys, key);
View Full Code Here

                dos.writeLong(END_MAGIC);
                byte[] buf = baos.toByteArray();
                raf.pwrite(totalLength - 8, buf, 0, 8);
            }
        } finally {
            lock.unlock();
        }
        if(logMINOR) Logger.minor(this, "Fetching "+thisKey+" on "+this+" for "+fetcher);
    }
   
    /** Construct a SplitFileFetcherStorage from a stored RandomAccessBuffer, and appropriate local
View Full Code Here

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.