/** * @param pageMem Page memory. * @param cacheId Cache ID. * @param pageId Page ID. * @param page Page pointer. * @param lsnr Lock listener. * @param tryLock Only try to lock without waiting. * @return Page address or {@code 0} if failed to lock due to recycling. */ public static long writeLock( PageMemory pageMem, int cacheId, long pageId, long page, PageLockListener lsnr, boolean tryLock) { lsnr.onBeforeWriteLock(cacheId, pageId, page); long pageAddr = tryLock ? pageMem.tryWriteLock(cacheId, pageId, page) : pageMem.writeLock(cacheId, pageId, page); lsnr.onWriteLock(cacheId, pageId, page, pageAddr); return pageAddr; }
/** * @param pageMem Page memory. * @param cacheId Cache ID. * @param pageId Page ID. * @param page Page pointer. * @param lsnr Lock listener. * @param tryLock Only try to lock without waiting. * @return Page address or {@code 0} if failed to lock due to recycling. */ public static long writeLock( PageMemory pageMem, int cacheId, long pageId, long page, PageLockListener lsnr, boolean tryLock) { lsnr.onBeforeWriteLock(cacheId, pageId, page); long pageAddr = tryLock ? pageMem.tryWriteLock(cacheId, pageId, page) : pageMem.writeLock(cacheId, pageId, page); lsnr.onWriteLock(cacheId, pageId, page, pageAddr); return pageAddr; }