@Override public void lock() { lock.lock(); }
private static void executeLock() { System.out.println("### Lock Execution Started... ###"); ILock lock = context.getBean("lock", ILock.class); lock.lock(); System.out.println("lock() call..."); System.out.println("is locked by current thread: " + lock.isLockedByCurrentThread()); lock.unlock(); System.out.println("unlock() call..."); System.out.println("is locked: " + lock.isLocked()); }
private void loadSegment(int segmentNumber) throws Exception { indexLock.writeLock().lock(); try { if (!segmentMap.containsKey(segmentNumber)) { String lockName = indexName + "-" + segmentNumber; ILock hzLock = hazelcastManager.getLock(lockName); hazelLockMap.put(segmentNumber, hzLock); log.info("Waiting for lock for index <" + indexName + "> segment <" + segmentNumber + ">"); hzLock.lock(); log.info("Obtained lock for index <" + indexName + "> segment <" + segmentNumber + ">"); //Just for clarity IndexSegmentInterface indexSegmentInterface = this; //doesnt need to be done each time and it is done in StartNode but helps with test cases that take different paths FacetsConfig.DEFAULT_DIM_CONFIG.multiValued = true; facetsConfig = new FacetsConfig(); LumongoSegment s = new LumongoSegment(segmentNumber, indexSegmentInterface, indexConfig, facetsConfig, documentStorage); segmentMap.put(segmentNumber, s); log.info("Loaded segment <" + segmentNumber + "> for index <" + indexName + ">"); log.info("Current segments <" + (new TreeSet<>(segmentMap.keySet())) + "> for index <" + indexName + ">"); } } finally { indexLock.writeLock().unlock(); } }
@Override protected void doUnregister(URL url) { Set<String> urls = replicatedMap.get(this.nodeId); ILock lock = hazelcastInstance.getLock(nodeId); lock.lock(); try { urls.remove(url.toFullString()); } finally { lock.unlock(); } }
lock.lock();
public static void main(String[] args) { HazelcastInstance hz = Hazelcast.newHazelcastInstance(); IAtomicLong counter = hz.getAtomicLong("counter"); ILock lock = hz.getLock("lock"); ICondition isOneCondition = lock.newCondition("isOne"); lock.lock(); try { counter.set(1); isOneCondition.signalAll(); } finally { lock.unlock(); } System.out.println("Value changed"); } }
System.out.println("at: " + i); lock.lock(); try { if (i % 2 == 0) {
public static void main(String[] args) throws Exception { HazelcastInstance hz = Hazelcast.newHazelcastInstance(); IAtomicLong counter = hz.getAtomicLong("counter"); ILock lock = hz.getLock("lock"); ICondition isOneCondition = lock.newCondition("isOne"); lock.lock(); try { while (counter.get() != 1) { System.out.println("Waiting"); isOneCondition.await(); } } finally { lock.unlock(); } System.out.println("Wait finished, counter: " + counter.get()); } }
@Override protected void doRegister(URL url) { if (logger.isInfoEnabled()) { logger.info("Register: " + url); } Set<String> urls = replicatedMap.get(nodeId); urls.add(url.toFullString()); ILock lock = hazelcastInstance.getLock(nodeId); lock.lock(); try { replicatedMap.put(nodeId, urls); } finally { lock.unlock(); } }
@Override public void destroy() { try { ILock lock = hazelcastInstance.getLock(nodeId); lock.lock(); try { Set<String> urls = replicatedMap.remove(nodeId); notify(toUrl(urls)); } finally { lock.unlock(); } hazelcastInstance.shutdown(); } catch (Exception e) { logger.warn(e.getMessage()); } }
@TimeStep public void timeStep(BaseThreadState state) { int lockIndex = state.randomInt(lockCount); ILock lock = targetInstance.getLock(name + lockIndex); int leaseTime = 1 + state.randomInt(maxLeaseTimeMillis); int tryTime = 1 + state.randomInt(maxTryTimeMillis); if (state.randomBoolean()) { lock.lock(leaseTime, MILLISECONDS); } else { try { lock.tryLock(tryTime, MILLISECONDS, leaseTime, MILLISECONDS); } catch (InterruptedException e) { logger.info("tryLock() got exception: " + e.getMessage()); } } }
@SuppressWarnings("unchecked") public ICommandResponse refresh(ILifecycleProgressMonitor monitor) throws SiteWhereException { ILock lock = SiteWhere.getServer().getHazelcastConfiguration().getHazelcastInstance() .getLock(getHazelcastMapName()); try { LOGGER.debug("Locking asset module to load assets from datastore."); lock.lock(); ISearchResults<IAsset> matches = SiteWhere.getServer().getAssetManagement(getTenant()) .listAssets(category.getId(), SearchCriteria.ALL); assets.clear(); for (IAsset asset : matches.getResults()) { assets.put(asset.getId(), (T) asset); } return new CommandResponse(CommandResult.Successful, "Asset list loaded from datastore."); } catch (Throwable t) { return new CommandResponse(CommandResult.Failed, "Asset load operation failed. " + t.getMessage()); } finally { lock.unlock(); LOGGER.debug("Released lock after loading assets from datastore."); } }
@TimeStep public void timeStep(ThreadState state) { firstLock.lock(); try { TransactionContext ctx = targetInstance.newTransactionContext(); try { ctx.beginTransaction(); TransactionalQueue<Integer> queue = ctx.getQueue(name + 'q'); queue.offer(1); secondLock.lock(); secondLock.unlock(); queue.take(); ctx.commitTransaction(); state.counter.committed++; } catch (Exception txnException) { try { ctx.rollbackTransaction(); state.counter.rolled++; logger.severe(name + ": Exception in txn " + state.counter, txnException); } catch (Exception rollException) { state.counter.failedRollbacks++; logger.severe(name + ": Exception in roll " + state.counter, rollException); } } } catch (Exception e) { logger.severe(name + ": outer Exception" + state.counter, e); } finally { firstLock.unlock(); } }
@Prepare public void prepare() throws Exception { networkCreateLock.lock(); try { logger.info("Starting connections: " + (targetInstance.getCluster().getMembers().size() - 1));
@Prepare public void prepare() throws Exception { networkCreateLock.lock(); try { logger.info("Starting connections: " + (targetInstance.getCluster().getMembers().size() - 1));
@Prepare public void prepare() throws Exception { networkCreateLock.lock(); try { logger.info("Starting connections: " + (targetInstance.getCluster().getMembers().size() - 1));