code: private void waitForAsyncSendsResolution() {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.entry(this, tc, "waitForAsyncSendsResolution");
  
          //AsyncSend is only for non-managed environments.. no need to wait for managed environment
          if (!isManaged()) {
  
              synchronized (_inProgressAysncSends) {
                  while (_inProgressAysncSends.get() > 0L) {
                      try {
                          //wait for 20 seconds.. and again check for condition..if no notification comes before then.
                          _inProgressAysncSends.wait(1000 * 20);
                      } catch (InterruptedException e) {
                          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
                              SibTr.debug(tc, "waitForAsyncSendsResolution got interrupted", e);
                      }
                  }
              }
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.exit(this, tc, "waitForAsyncSendsResolution");
      }
docs: This function blocks till all Async sends are resolved.