Package java.util.concurrent.atomic

Examples of java.util.concurrent.atomic.AtomicReferenceArray


    {
      long l3 = 0L;
      for (Segment localSegment : arrayOfSegment1)
      {
        int m = localSegment.count;
        AtomicReferenceArray localAtomicReferenceArray = localSegment.table;
        for (int n = 0; n < localAtomicReferenceArray.length(); n++)
          for (ReferenceEntry localReferenceEntry = (ReferenceEntry)localAtomicReferenceArray.get(n); localReferenceEntry != null; localReferenceEntry = localReferenceEntry.getNext())
          {
            Object localObject = localSegment.getLiveValue(localReferenceEntry, l1);
            if ((localObject != null) && (this.valueEquivalence.equivalent(paramObject, localObject)))
              return true;
          }
View Full Code Here


    return new AtomicReference(paramObject);
  }

  public static AtomicReferenceArray newReferenceArray(int paramInt)
  {
    return new AtomicReferenceArray(paramInt);
  }
View Full Code Here

    return new AtomicReferenceArray(paramInt);
  }

  public static AtomicReferenceArray newReferenceArray(Object[] paramArrayOfObject)
  {
    return new AtomicReferenceArray(paramArrayOfObject);
  }
View Full Code Here

            lock();
            try
            {
              preWriteCleanup();
              int j = this.count - 1;
              AtomicReferenceArray localAtomicReferenceArray = this.table;
              int k = paramInt & localAtomicReferenceArray.length() - 1;
              MapMakerInternalMap.ReferenceEntry localReferenceEntry = (MapMakerInternalMap.ReferenceEntry)localAtomicReferenceArray.get(k);
              for (localObject1 = localReferenceEntry; localObject1 != null; localObject1 = ((MapMakerInternalMap.ReferenceEntry)localObject1).getNext())
              {
                Object localObject6 = ((MapMakerInternalMap.ReferenceEntry)localObject1).getKey();
                if ((((MapMakerInternalMap.ReferenceEntry)localObject1).getHash() == paramInt) && (localObject6 != null) && (this.map.keyEquivalence.equivalent(paramObject, localObject6)))
                {
                  MapMakerInternalMap.ValueReference localValueReference = ((MapMakerInternalMap.ReferenceEntry)localObject1).getValueReference();
                  if (localValueReference.isComputingReference())
                  {
                    i = 0;
                    break;
                  }
                  Object localObject7 = ((MapMakerInternalMap.ReferenceEntry)localObject1).getValueReference().get();
                  if (localObject7 == null)
                  {
                    enqueueNotification(localObject6, paramInt, localObject7, MapMaker.RemovalCause.COLLECTED);
                  }
                  else if ((this.map.expires()) && (this.map.isExpired((MapMakerInternalMap.ReferenceEntry)localObject1)))
                  {
                    enqueueNotification(localObject6, paramInt, localObject7, MapMaker.RemovalCause.EXPIRED);
                  }
                  else
                  {
                    recordLockedRead((MapMakerInternalMap.ReferenceEntry)localObject1);
                    Object localObject8 = localObject7;
                    return localObject8;
                  }
                  this.evictionQueue.remove(localObject1);
                  this.expirationQueue.remove(localObject1);
                  this.count = j;
                  break;
                }
              }
              if (i != 0)
              {
                localObject4 = new ComputingConcurrentHashMap.ComputingValueReference(paramFunction);
                if (localObject1 == null)
                {
                  localObject1 = newEntry(paramObject, paramInt, localReferenceEntry);
                  ((MapMakerInternalMap.ReferenceEntry)localObject1).setValueReference((MapMakerInternalMap.ValueReference)localObject4);
                  localAtomicReferenceArray.set(k, localObject1);
                }
                else
                {
                  ((MapMakerInternalMap.ReferenceEntry)localObject1).setValueReference((MapMakerInternalMap.ValueReference)localObject4);
                }
View Full Code Here

                    String[] concreteIndices;
                    try {
                         concreteIndices = clusterState.metaData().concreteIndices(percolateRequest.indicesOptions(), percolateRequest.indices());
                    } catch (IndexMissingException e) {
                        reducedResponses.set(slot, e);
                        responsesByItemAndShard.set(slot, new AtomicReferenceArray(0));
                        expectedOperationsPerItem.set(slot, new AtomicInteger(0));
                        continue;
                    }
                    Map<String, Set<String>> routing = clusterState.metaData().resolveSearchRouting(percolateRequest.routing(), percolateRequest.indices());
                    // TODO: I only need shardIds, ShardIterator(ShardRouting) is only needed in TransportShardMultiPercolateAction
                    GroupShardsIterator shards = clusterService.operationRouting().searchShards(
                            clusterState, percolateRequest.indices(), concreteIndices, routing, percolateRequest.preference()
                    );
                    if (shards.size() == 0) {
                        reducedResponses.set(slot, new UnavailableShardsException(null, "No shards available"));
                        responsesByItemAndShard.set(slot, new AtomicReferenceArray(0));
                        expectedOperationsPerItem.set(slot, new AtomicInteger(0));
                        continue;
                    }

                    responsesByItemAndShard.set(slot, new AtomicReferenceArray(shards.size()));
                    expectedOperationsPerItem.set(slot, new AtomicInteger(shards.size()));
                    for (ShardIterator shard : shards) {
                        ShardId shardId = shard.shardId();
                        TransportShardMultiPercolateAction.Request requests = requestsByShard.get(shardId);
                        if (requests == null) {
                            requestsByShard.put(shardId, requests = new TransportShardMultiPercolateAction.Request(multiPercolateRequest, shardId.getIndex(), shardId.getId(), percolateRequest.preference()));
                        }
                        logger.trace("Adding shard[{}] percolate request for item[{}]", shardId, slot);
                        requests.add(new TransportShardMultiPercolateAction.Request.Item(slot, new PercolateShardRequest(shardId, percolateRequest)));

                        IntArrayList items = shardToSlots.get(shardId);
                        if (items == null) {
                            shardToSlots.put(shardId, items = new IntArrayList());
                        }
                        items.add(slot);
                    }
                    expectedResults++;
                } else if (element instanceof Throwable || element instanceof MultiGetResponse.Failure) {
                    logger.trace("item[{}] won't be executed, reason: {}", slot, element);
                    reducedResponses.set(slot, element);
                    responsesByItemAndShard.set(slot, new AtomicReferenceArray(0));
                    expectedOperationsPerItem.set(slot, new AtomicInteger(0));
                }
            }
            expectedOperations = new AtomicInteger(expectedResults);
        }
View Full Code Here

        @SuppressWarnings("unchecked")
        void onShardResponse(ShardId shardId, TransportShardMultiPercolateAction.Response response) {
            logger.trace("{} Percolate shard response", shardId);
            try {
                for (TransportShardMultiPercolateAction.Response.Item item : response.items()) {
                    AtomicReferenceArray shardResults = responsesByItemAndShard.get(item.slot());
                    if (shardResults == null) {
                        assert false : "shardResults can't be null";
                        continue;
                    }

                    if (item.failed()) {
                        shardResults.set(shardId.id(), new BroadcastShardOperationFailedException(shardId, item.error().string()));
                    } else {
                        shardResults.set(shardId.id(), item.response());
                    }

                    assert expectedOperationsPerItem.get(item.slot()).get() >= 1 : "slot[" + item.slot() + "] can't be lower than one";
                    if (expectedOperationsPerItem.get(item.slot()).decrementAndGet() == 0) {
                        // Failure won't bubble up, since we fail the whole request now via the catch clause below,
View Full Code Here

            logger.debug("{} Shard multi percolate failure", e, shardId);
            try {
                IntArrayList slots = shardToSlots.get(shardId);
                for (int i = 0; i < slots.size(); i++) {
                    int slot = slots.get(i);
                    AtomicReferenceArray shardResults = responsesByItemAndShard.get(slot);
                    if (shardResults == null) {
                        continue;
                    }

                    shardResults.set(shardId.id(), new BroadcastShardOperationFailedException(shardId, e));
                    assert expectedOperationsPerItem.get(slot).get() >= 1 : "slot[" + slot + "] can't be lower than one. Caused by: " + e.getMessage();
                    if (expectedOperationsPerItem.get(slot).decrementAndGet() == 0) {
                        reduce(slot);
                    }
                }
View Full Code Here

                finalListener.onFailure(t);
            }
        }

        void reduce(int slot) {
            AtomicReferenceArray shardResponses = responsesByItemAndShard.get(slot);
            PercolateResponse reducedResponse = TransportPercolateAction.reduce((PercolateRequest) percolateRequests.get(slot), shardResponses, percolatorService);
            reducedResponses.set(slot, reducedResponse);
            assert expectedOperations.get() >= 1 : "slot[" + slot + "] expected options should be >= 1 but is " + expectedOperations.get();
            if (expectedOperations.decrementAndGet() == 0) {
                finish();
View Full Code Here

        public void start() {
            if (shardsIts.size() == 0) {
                // no shards
                try {
                    listener.onResponse(newResponse(request, new AtomicReferenceArray(0), clusterState));
                } catch (Throwable e) {
                    listener.onFailure(e);
                }
                return;
            }
View Full Code Here

TOP

Related Classes of java.util.concurrent.atomic.AtomicReferenceArray

Copyright © 2018 www.massapicom. 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.