<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<link rel="canonical" href="https://ignite.apache.org/releases/2.6.0/javadoc/org/apache/ignite/IgniteCountDownLatch.html" />
<META NAME="ROBOTS" CONTENT="NOINDEX">

<!-- Generated by javadoc (1.8.0_77) on Tue Jul 10 11:04:39 UTC 2018 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>IgniteCountDownLatch (Ignite 2.6.0)</title>
<meta name="date" content="2018-07-10">
<link rel="stylesheet" type="text/css" href="../../../javadoc.css" title="Style">
<script type="text/javascript" src="../../../script.js"></script>

<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-61232409-1', 'auto');
  ga('send', 'pageview');

</script></head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="IgniteCountDownLatch (Ignite 2.6.0)";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/IgniteCountDownLatch.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage">Ignite - In-Memory Data Fabric</div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../org/apache/ignite/IgniteCondition.html" title="interface in org.apache.ignite"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../org/apache/ignite/IgniteDataStreamer.html" title="interface in org.apache.ignite"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?org/apache/ignite/IgniteCountDownLatch.html" target="_top">Frames</a></li>
<li><a href="IgniteCountDownLatch.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.ignite</div>
<h2 title="Interface IgniteCountDownLatch" class="title">Interface IgniteCountDownLatch</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Superinterfaces:</dt>
<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang">AutoCloseable</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.html?is-external=true" title="class or interface in java.io">Closeable</a></dd>
</dl>
<hr>
<br>
<pre>public interface <span class="typeNameLabel">IgniteCountDownLatch</span>
extends <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.html?is-external=true" title="class or interface in java.io">Closeable</a></pre>
<div class="block">This interface provides a rich API for working with distributed count down latch.
 <p>
 <h1 class="header">Functionality</h1>
 Distributed count down latch provides functionality similar to <code>java.util.CountDownLatch</code>.
 Note that you cannot remove count down latch having count greater that zero. It should be
 counted down to zero first.
 <h1 class="header">Creating Distributed Count Down Latch</h1>
 Instance of cache count down latch can be created by calling the following method:
 <a href="../../../org/apache/ignite/Ignite.html#countDownLatch-java.lang.String-int-boolean-boolean-"><code>Ignite.countDownLatch(String, int, boolean, boolean)</code></a>.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/ignite/IgniteCountDownLatch.html#autoDelete--">autoDelete</a></span>()</code>
<div class="block">Gets <code>autoDelete</code> flag.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/ignite/IgniteCountDownLatch.html#await--">await</a></span>()</code>
<div class="block">Causes the current thread to wait until the latch has counted down to
 zero, unless current thread is interrupted.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/ignite/IgniteCountDownLatch.html#await-long-">await</a></span>(long&nbsp;timeout)</code>
<div class="block">Causes the current thread to wait until the latch has counted down to
 zero, unless the thread is interrupted, or the specified waiting time elapses.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/ignite/IgniteCountDownLatch.html#await-long-java.util.concurrent.TimeUnit-">await</a></span>(long&nbsp;timeout,
     <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent">TimeUnit</a>&nbsp;unit)</code>
<div class="block">Causes the current thread to wait until the latch has counted down to
 zero, unless the thread is interrupted, or the specified waiting time elapses.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/ignite/IgniteCountDownLatch.html#close--">close</a></span>()</code>
<div class="block">Removes this count down latch.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/ignite/IgniteCountDownLatch.html#count--">count</a></span>()</code>
<div class="block">Gets current count value of the latch.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/ignite/IgniteCountDownLatch.html#countDown--">countDown</a></span>()</code>
<div class="block">Decrements the count of the latch, releasing all waiting threads
 on all nodes if the count reaches zero.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/ignite/IgniteCountDownLatch.html#countDown-int-">countDown</a></span>(int&nbsp;val)</code>
<div class="block">Decreases the count of the latch using passed in value,
 releasing all waiting threads on all nodes if the count reaches zero.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/ignite/IgniteCountDownLatch.html#countDownAll--">countDownAll</a></span>()</code>
<div class="block">Counts down this latch to zero, releasing all waiting threads on all nodes.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/ignite/IgniteCountDownLatch.html#initialCount--">initialCount</a></span>()</code>
<div class="block">Gets initial count value of the latch.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/ignite/IgniteCountDownLatch.html#name--">name</a></span>()</code>
<div class="block">Gets name of the latch.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/ignite/IgniteCountDownLatch.html#removed--">removed</a></span>()</code>
<div class="block">Gets <code>removed</code> status of the latch.</div>
</td>
</tr>
</table>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="name--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>name</h4>
<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name()</pre>
<div class="block">Gets name of the latch.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Name of the latch.</dd>
</dl>
</li>
</ul>
<a name="count--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>count</h4>
<pre>int&nbsp;count()</pre>
<div class="block">Gets current count value of the latch.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Current count.</dd>
</dl>
</li>
</ul>
<a name="initialCount--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>initialCount</h4>
<pre>int&nbsp;initialCount()</pre>
<div class="block">Gets initial count value of the latch.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Initial count.</dd>
</dl>
</li>
</ul>
<a name="autoDelete--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>autoDelete</h4>
<pre>boolean&nbsp;autoDelete()</pre>
<div class="block">Gets <code>autoDelete</code> flag. If this flag is <code>true</code> latch is removed
 from cache when it has been counted down to 0.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Value of <code>autoDelete</code> flag.</dd>
</dl>
</li>
</ul>
<a name="await--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>await</h4>
<pre>void&nbsp;await()
    throws <a href="../../../org/apache/ignite/IgniteException.html" title="class in org.apache.ignite">IgniteException</a></pre>
<div class="block">Causes the current thread to wait until the latch has counted down to
 zero, unless current thread is interrupted.
 <p>
 If the current count of the latch is zero then this method returns immediately.
 <p>
 If the current count is greater than zero then the current
 thread becomes disabled for thread scheduling purposes and lies
 dormant until one of two things happen:
 <ul>
     <li>The count reaches zero due to invocations of the
      <a href="../../../org/apache/ignite/IgniteCountDownLatch.html#countDown--"><code>countDown()</code></a> method on any node; or
      <li>Some other thread interrupts the current thread.
 </ul>
 <p>
 If the current thread:
 <ul>
      <li>has its interrupted status set on entry to this method; or
      <li>is interrupted while waiting,
 </ul>
 then <code>IgniteInterruptedCheckedException</code> is thrown and the current thread's
 interrupted status is cleared.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../org/apache/ignite/IgniteException.html" title="class in org.apache.ignite">IgniteException</a></code> - If operation failed.</dd>
<dd><code><a href="../../../org/apache/ignite/IgniteInterruptedException.html" title="class in org.apache.ignite">IgniteInterruptedException</a></code> - if the current thread is interrupted
      while waiting</dd>
</dl>
</li>
</ul>
<a name="await-long-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>await</h4>
<pre>boolean&nbsp;await(long&nbsp;timeout)
       throws <a href="../../../org/apache/ignite/IgniteException.html" title="class in org.apache.ignite">IgniteException</a></pre>
<div class="block">Causes the current thread to wait until the latch has counted down to
 zero, unless the thread is interrupted, or the specified waiting time elapses.
 <p>
 If the current count is zero then this method returns immediately
 with the value <code>true</code>.
 <p>
 If the current count is greater than zero then the current
 thread becomes disabled for thread scheduling purposes and lies
 dormant until one of three things happen:
 <ul>
      <li>The count reaches zero due to invocations of the
      <a href="../../../org/apache/ignite/IgniteCountDownLatch.html#countDown--"><code>countDown()</code></a> method on any node; or
      <li>Some other thread interrupts the current thread; or
      <li>The specified waiting time elapses.
 </ul>
 <p>
 If the count reaches zero then the method returns with the
 value <code>true</code>.
 <p>
 If the current thread:
 <ul>
      <li>has its interrupted status set on entry to this method; or
      <li>is interrupted while waiting,
 </ul>
 then <code>IgniteInterruptedCheckedException</code> is thrown and the current thread's
 interrupted status is cleared.
 <p>
 If the specified waiting time elapses then the value <code>false</code>
 is returned.  If the time is less than or equal to zero, the method
 will not wait at all.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>timeout</code> - The maximum time to wait in milliseconds.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>True</code> if the count reached zero and <code>false</code>
      if the waiting time elapsed before the count reached zero.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../org/apache/ignite/IgniteInterruptedException.html" title="class in org.apache.ignite">IgniteInterruptedException</a></code> - If the current thread is interrupted
      while waiting.</dd>
<dd><code><a href="../../../org/apache/ignite/IgniteException.html" title="class in org.apache.ignite">IgniteException</a></code> - If operation failed.</dd>
</dl>
</li>
</ul>
<a name="await-long-java.util.concurrent.TimeUnit-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>await</h4>
<pre>boolean&nbsp;await(long&nbsp;timeout,
              <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent">TimeUnit</a>&nbsp;unit)
       throws <a href="../../../org/apache/ignite/IgniteException.html" title="class in org.apache.ignite">IgniteException</a></pre>
<div class="block">Causes the current thread to wait until the latch has counted down to
 zero, unless the thread is interrupted, or the specified waiting time elapses.
 <p>
 If the current count is zero then this method returns immediately
 with the value <code>true</code>.
 <p>
 If the current count is greater than zero then the current
 thread becomes disabled for thread scheduling purposes and lies
 dormant until one of three things happen:
 <ul>
      <li>The count reaches zero due to invocations of the
      <a href="../../../org/apache/ignite/IgniteCountDownLatch.html#countDown--"><code>countDown()</code></a> method on any node; or
      <li>Some other thread interrupts the current thread; or
      <li>The specified waiting time elapses.
 </ul>
 <p>
 If the count reaches zero then the method returns with the
 value <code>true</code>.
 <p>
 If the current thread:
 <ul>
      <li>has its interrupted status set on entry to this method; or
      <li>is interrupted while waiting,
 </ul>
 then <code>IgniteInterruptedCheckedException</code> is thrown and the current thread's
 interrupted status is cleared.
 <p>
 If the specified waiting time elapses then the value <code>false</code>
 is returned.  If the time is less than or equal to zero, the method
 will not wait at all.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>timeout</code> - The maximum time to wait.</dd>
<dd><code>unit</code> - The time unit of the <code>timeout</code> argument.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>True</code> if the count reached zero and <code>false</code>
      if the waiting time elapsed before the count reached zero.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../org/apache/ignite/IgniteInterruptedException.html" title="class in org.apache.ignite">IgniteInterruptedException</a></code> - If the current thread is interrupted
      while waiting.</dd>
<dd><code><a href="../../../org/apache/ignite/IgniteException.html" title="class in org.apache.ignite">IgniteException</a></code> - If operation failed.</dd>
</dl>
</li>
</ul>
<a name="countDown--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>countDown</h4>
<pre>int&nbsp;countDown()
       throws <a href="../../../org/apache/ignite/IgniteException.html" title="class in org.apache.ignite">IgniteException</a></pre>
<div class="block">Decrements the count of the latch, releasing all waiting threads
 on all nodes if the count reaches zero.
 <p>
 If the current count is greater than zero then it is decremented.
 If the new count is zero then all waiting threads are re-enabled for
 thread scheduling purposes.
 <p>
 If the current count equals zero then nothing happens.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Count after decrement.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../org/apache/ignite/IgniteException.html" title="class in org.apache.ignite">IgniteException</a></code> - If operation failed.</dd>
</dl>
</li>
</ul>
<a name="countDown-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>countDown</h4>
<pre>int&nbsp;countDown(int&nbsp;val)
       throws <a href="../../../org/apache/ignite/IgniteException.html" title="class in org.apache.ignite">IgniteException</a></pre>
<div class="block">Decreases the count of the latch using passed in value,
 releasing all waiting threads on all nodes if the count reaches zero.
 <p>
 If the current count is greater than zero then it is decreased.
 If the new count is zero then all waiting threads are re-enabled for
 thread scheduling purposes.
 <p>
 If the current count equals zero then nothing happens.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>val</code> - Value to decrease counter on.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Count after decreasing.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../org/apache/ignite/IgniteException.html" title="class in org.apache.ignite">IgniteException</a></code> - If operation failed.</dd>
</dl>
</li>
</ul>
<a name="countDownAll--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>countDownAll</h4>
<pre>void&nbsp;countDownAll()
           throws <a href="../../../org/apache/ignite/IgniteException.html" title="class in org.apache.ignite">IgniteException</a></pre>
<div class="block">Counts down this latch to zero, releasing all waiting threads on all nodes.
 <p>
 If the current count equals zero then nothing happens.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../org/apache/ignite/IgniteException.html" title="class in org.apache.ignite">IgniteException</a></code> - If operation failed.</dd>
</dl>
</li>
</ul>
<a name="removed--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removed</h4>
<pre>boolean&nbsp;removed()</pre>
<div class="block">Gets <code>removed</code> status of the latch.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>True</code> if latch was removed from cache, <code>false</code> otherwise.</dd>
</dl>
</li>
</ul>
<a name="close--">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>close</h4>
<pre>void&nbsp;close()</pre>
<div class="block">Removes this count down latch.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true#close--" title="class or interface in java.lang">close</a></code>&nbsp;in interface&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang">AutoCloseable</a></code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.html?is-external=true#close--" title="class or interface in java.io">close</a></code>&nbsp;in interface&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.html?is-external=true" title="class or interface in java.io">Closeable</a></code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../org/apache/ignite/IgniteException.html" title="class in org.apache.ignite">IgniteException</a></code> - If operation failed.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/IgniteCountDownLatch.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage">Ignite - In-Memory Data Fabric</div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../org/apache/ignite/IgniteCondition.html" title="interface in org.apache.ignite"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../org/apache/ignite/IgniteDataStreamer.html" title="interface in org.apache.ignite"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?org/apache/ignite/IgniteCountDownLatch.html" target="_top">Frames</a></li>
<li><a href="IgniteCountDownLatch.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small><table width="100%" border="0" cellspacing=0 cellpadding=0 style="padding: 5px">                                     <tr>                                         <td>                                             <table style="padding-left: 0; margin: 0">                                                 <tbody style="padding: 0; margin: 0">                                                     <tr style="padding: 0; margin: 0">                                                         <td>                                                             <a target=_blank href="https://ignite.apache.org"><nobr>2018 Copyright &#169; Apache Software Foundation</nobr></a>                                                         </td>                                                     </tr>                                                 </tbody>                                             </table>                                         </td>                                         <td width="100%" align="right" valign="center">                                             <a href="https://twitter.com/ApacheIgnite" class="twitter-follow-button" data-show-count="false" data-size="large">Follow @ApacheIgnite</a>                                         </td>                                     </tr>                                     <tr>                                         <td colspan="2" valign="top" align="left">                                             <table style="padding-left: 0; margin: 0">                                                 <tbody style="padding: 0; margin: 0">                                                     <tr style="padding: 0; margin: 0">                                                         <td>                                                             <b>Ignite Fabric</b>                                                         </td>                                                         <td>:&nbsp;&nbsp;                                                             ver. <strong>2.6.0</strong>                                                         </td>                                                     </tr>                                                     <tr style="padding: 0; margin: 0">                                                         <td>                                                             <b>Release Date</b>                                                         </td>                                                         <td>:&nbsp;&nbsp;                                                             July 10 2018                                                         </td>                                                     </tr>                                                 </tbody>                                             </table>                                         </td>                                     </tr>                                     </table></small></p>
</body>
</html>
