test_class.file: invesdwin-context-persistence-parent/invesdwin-context-persistence-timeseries/src/test/java/de/invesdwin/context/persistence/timeseries/ipc/ASpinWaitTest.java
test_class.identifier: ASpinWaitTest
test_class.superclass: extends ATest
test_case.body: @Test
      public void testMaxWait() throws IOException {
          final ASpinWait waitingSpinWait = new ASpinWait() {
  
              @Override
              protected boolean isConditionFulfilled() {
                  return false;
              }
          };
          final Duration maxWait = Duration.ONE_SECOND;
          final Instant waitingSince = new Instant();
          waitingSpinWait.awaitFulfill(waitingSince, maxWait);
          Assertions.assertThat(waitingSince.toDuration()).isGreaterThanOrEqualTo(maxWait);
      }
test_case.class_method_signature: ASpinWaitTest.testMaxWait()
test_case.full_signature: @Test public void testMaxWait()
test_case.identifier: testMaxWait
test_case.invocations: awaitFulfill isGreaterThanOrEqualTo assertThat toDuration
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testMaxWait()
focal_class.declarator: ON_SPIN_WAIT = determineOnSpinWait()
focal_class.modifier: protected static final
focal_class.original_string: protected static final MethodHandle ON_SPIN_WAIT = determineOnSpinWait();
focal_class.type: MethodHandle
focal_class.var_name: ON_SPIN_WAIT
focal_class.declarator: spinAllowed = determineSpinAllowed()
focal_class.modifier: protected final
focal_class.original_string: protected final boolean spinAllowed = determineSpinAllowed();
focal_class.type: boolean
focal_class.var_name: spinAllowed
focal_class.declarator: maxTimedSpins = (spinAllowed) ? determineMaxTimedSpins() : 0
focal_class.modifier: protected final
focal_class.original_string: protected final int maxTimedSpins = (spinAllowed) ? determineMaxTimedSpins() : 0;
focal_class.type: int
focal_class.var_name: maxTimedSpins
focal_class.declarator: maxUntimedSpins = determineMaxUntimedSpins()
focal_class.modifier: protected final
focal_class.original_string: protected final int maxUntimedSpins = determineMaxUntimedSpins();
focal_class.type: int
focal_class.var_name: maxUntimedSpins
focal_class.declarator: skipSpinAfterWaitingSince = determineSkipSpinAfterWaitingSince()
              .longValue(FTimeUnit.NANOSECONDS)
focal_class.modifier: protected final
focal_class.original_string: protected final long skipSpinAfterWaitingSince = determineSkipSpinAfterWaitingSince()
              .longValue(FTimeUnit.NANOSECONDS);
focal_class.type: long
focal_class.var_name: skipSpinAfterWaitingSince
focal_class.declarator: maxParkIntervalNanos = determineMaxParkInterval().longValue(FTimeUnit.NANOSECONDS)
focal_class.modifier: protected final
focal_class.original_string: protected final long maxParkIntervalNanos = determineMaxParkInterval().longValue(FTimeUnit.NANOSECONDS);
focal_class.type: long
focal_class.var_name: maxParkIntervalNanos
focal_class.declarator: maxTimedSpinDuration = determineMaxTimedSpinDuration().longValue(FTimeUnit.NANOSECONDS)
focal_class.modifier: protected final
focal_class.original_string: protected final long maxTimedSpinDuration = determineMaxTimedSpinDuration().longValue(FTimeUnit.NANOSECONDS);
focal_class.type: long
focal_class.var_name: maxTimedSpinDuration
focal_class.file: invesdwin-context-persistence-parent/invesdwin-context-persistence-timeseries/src/main/java/de/invesdwin/context/persistence/timeseries/ipc/ASpinWait.java
focal_class.identifier: ASpinWait
focal_class.class_method_signature: ASpinWait.determineSkipSpinAfterWaitingSince()
focal_class.full_signature: protected Duration determineSkipSpinAfterWaitingSince()
focal_class.identifier: determineSkipSpinAfterWaitingSince
focal_class.modifiers: protected
focal_class.parameters: ()
focal_class.return: Duration
focal_class.signature: Duration determineSkipSpinAfterWaitingSince()
focal_class.class_method_signature: ASpinWait.determineOnSpinWait()
focal_class.full_signature: protected static MethodHandle determineOnSpinWait()
focal_class.identifier: determineOnSpinWait
focal_class.modifiers: protected static
focal_class.parameters: ()
focal_class.return: MethodHandle
focal_class.signature: MethodHandle determineOnSpinWait()
focal_class.class_method_signature: ASpinWait.noop()
focal_class.full_signature: @SuppressWarnings("unused") private static void noop()
focal_class.identifier: noop
focal_class.modifiers: @SuppressWarnings("unused") private static
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void noop()
focal_class.class_method_signature: ASpinWait.determineMaxUntimedSpins()
focal_class.full_signature: protected int determineMaxUntimedSpins()
focal_class.identifier: determineMaxUntimedSpins
focal_class.modifiers: protected
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int determineMaxUntimedSpins()
focal_class.class_method_signature: ASpinWait.determineMaxTimedSpins()
focal_class.full_signature: protected int determineMaxTimedSpins()
focal_class.identifier: determineMaxTimedSpins
focal_class.modifiers: protected
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int determineMaxTimedSpins()
focal_class.class_method_signature: ASpinWait.determineSpinAllowed()
focal_class.full_signature: protected boolean determineSpinAllowed()
focal_class.identifier: determineSpinAllowed
focal_class.modifiers: protected
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean determineSpinAllowed()
focal_class.class_method_signature: ASpinWait.determineMaxParkInterval()
focal_class.full_signature: protected Duration determineMaxParkInterval()
focal_class.identifier: determineMaxParkInterval
focal_class.modifiers: protected
focal_class.parameters: ()
focal_class.return: Duration
focal_class.signature: Duration determineMaxParkInterval()
focal_class.class_method_signature: ASpinWait.determineMaxTimedSpinDuration()
focal_class.full_signature: public Duration determineMaxTimedSpinDuration()
focal_class.identifier: determineMaxTimedSpinDuration
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: Duration
focal_class.signature: Duration determineMaxTimedSpinDuration()
focal_class.class_method_signature: ASpinWait.isConditionFulfilled()
focal_class.full_signature: protected abstract boolean isConditionFulfilled()
focal_class.identifier: isConditionFulfilled
focal_class.modifiers: protected abstract
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isConditionFulfilled()
focal_class.class_method_signature: ASpinWait.isSpinAllowed(final Instant waitingSince)
focal_class.full_signature: protected boolean isSpinAllowed(final Instant waitingSince)
focal_class.identifier: isSpinAllowed
focal_class.modifiers: protected
focal_class.parameters: (final Instant waitingSince)
focal_class.return: boolean
focal_class.signature: boolean isSpinAllowed(final Instant waitingSince)
focal_class.class_method_signature: ASpinWait.awaitFulfill(final Instant waitingSince)
focal_class.full_signature: public boolean awaitFulfill(final Instant waitingSince)
focal_class.identifier: awaitFulfill
focal_class.modifiers: public
focal_class.parameters: (final Instant waitingSince)
focal_class.return: boolean
focal_class.signature: boolean awaitFulfill(final Instant waitingSince)
focal_class.class_method_signature: ASpinWait.awaitFulfill(final Instant waitingSince, final Duration maxWait)
focal_class.full_signature: public boolean awaitFulfill(final Instant waitingSince, final Duration maxWait)
focal_class.identifier: awaitFulfill
focal_class.modifiers: public
focal_class.parameters: (final Instant waitingSince, final Duration maxWait)
focal_class.return: boolean
focal_class.signature: boolean awaitFulfill(final Instant waitingSince, final Duration maxWait)
focal_class.class_method_signature: ASpinWait.onSpinWait()
focal_class.full_signature: private void onSpinWait()
focal_class.identifier: onSpinWait
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void onSpinWait()
focal_method.body: public boolean awaitFulfill(final Instant waitingSince) throws IOException {
          while (true) {
              awaitFulfill(waitingSince, Duration.ONE_DAY);
          }
      }
focal_method.class_method_signature: ASpinWait.awaitFulfill(final Instant waitingSince)
focal_method.full_signature: public boolean awaitFulfill(final Instant waitingSince)
focal_method.identifier: awaitFulfill
focal_method.invocations: awaitFulfill
focal_method.modifiers: public
focal_method.parameters: (final Instant waitingSince)
focal_method.return: boolean
focal_method.signature: boolean awaitFulfill(final Instant waitingSince)