Categories:
Audio (13)
Biotech (29)
Bytecode (36)
Database (77)
Framework (7)
Game (7)
General (507)
Graphics (53)
I/O (35)
IDE (2)
JAR Tools (102)
JavaBeans (21)
JDBC (121)
JDK (426)
JSP (20)
Logging (108)
Mail (58)
Messaging (8)
Network (84)
PDF (97)
Report (7)
Scripting (84)
Security (32)
Server (121)
Servlet (26)
SOAP (24)
Testing (54)
Web (15)
XML (322)
Collections:
Other Resources:
Apache Ant Source Code Files
Apache Ant Source Code Files are inside the Apache Ant source package file
like apache-ant-1.10.10-src.zip.
Unzip the source package file and go to the "src/main" sub-directory,
you will see source code files.
Here is the list of Java source code files of the Apache Ant 1.10.10 in \Users\fyicenter\apache-ant-1.10.10\src\main:
✍: FYIcenter.com
⏎ org/apache/tools/ant/util/Watchdog.java
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
package org.apache.tools.ant.util;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
* Generalization of <code>ExecuteWatchdog</code>
*
* @since Ant 1.5
*
* @see org.apache.tools.ant.taskdefs.ExecuteWatchdog
*
*/
public class Watchdog implements Runnable {
/**
* Error string.
* {@value}
*/
public static final String ERROR_INVALID_TIMEOUT = "timeout less than 1.";
private List<TimeoutObserver> observers =
Collections.synchronizedList(new ArrayList<>(1));
private long timeout = -1;
/**
* marked as volatile to stop the compiler caching values or (in java1.5+,
* reordering access)
*/
private volatile boolean stopped = false;
/**
* Constructor for Watchdog.
* @param timeout the timeout to use in milliseconds (must be >= 1).
*/
public Watchdog(long timeout) {
if (timeout < 1) {
throw new IllegalArgumentException(ERROR_INVALID_TIMEOUT);
}
this.timeout = timeout;
}
/**
* Add a timeout observer.
* @param to the timeout observer to add.
*/
public void addTimeoutObserver(TimeoutObserver to) {
observers.add(to);
}
/**
* Remove a timeout observer.
* @param to the timeout observer to remove.
*/
public void removeTimeoutObserver(TimeoutObserver to) {
observers.remove(to);
}
/**
* Inform the observers that a timeout has occurred.
* This happens in the watchdog thread.
*/
protected final void fireTimeoutOccured() {
observers.forEach(o -> o.timeoutOccured(this));
}
/**
* Start the watch dog.
*/
public synchronized void start() {
stopped = false;
Thread t = new Thread(this, "WATCHDOG");
t.setDaemon(true);
t.start();
}
/**
* Stop the watch dog.
*/
public synchronized void stop() {
stopped = true;
notifyAll();
}
/**
* The run method of the watch dog thread.
* This simply does a wait for the timeout time, and
* if the stop flag has not been set when the wait has returned or
* has been interrupted, the watch dog listeners are informed.
*/
@Override
public synchronized void run() {
long now = System.currentTimeMillis();
final long until = now + timeout;
try {
while (!stopped && until > now) {
wait(until - now);
now = System.currentTimeMillis();
}
} catch (InterruptedException e) {
// Ignore exception
}
if (!stopped) {
fireTimeoutOccured();
}
}
}
⏎ org/apache/tools/ant/util/Watchdog.java
Or download all of them as a single archive file:
File name: apache-ant-1.10.10-fyi.zip File size: 2392938 bytes Release date: 2021-04-17 Download
⇐ Download Apache Ant Source Package
2021-07-10, ≈397🔥, 0💬
Popular Posts:
How to download and install ojdbc6.jar for Oracle 11g R2? ojdbc6.jar for Oracle 11g R2 is a Java 6, ...
Java Architecture for XML Binding (JAXB) is a Java API that allows Java developers to map Java class...
How to download and install javamail-1_2.zip? The JavaMail API is a set of abstract APIs that model ...
What Is ojdbc8.jar for Oracle 12c R2? ojdbc8.jar for Oracle 12c R2 is the JAR files of ojdbc.jar, JD...
JDK 11 jdk.jconsole.jmod is the JMOD file for JDK 11 JConsole tool, which can be invoked by the "jco...