diff options
Diffstat (limited to 'framework/src/onos/utils/misc/src/main/java/org/onlab/util/GroupedThreadFactory.java')
-rw-r--r-- | framework/src/onos/utils/misc/src/main/java/org/onlab/util/GroupedThreadFactory.java | 88 |
1 files changed, 0 insertions, 88 deletions
diff --git a/framework/src/onos/utils/misc/src/main/java/org/onlab/util/GroupedThreadFactory.java b/framework/src/onos/utils/misc/src/main/java/org/onlab/util/GroupedThreadFactory.java deleted file mode 100644 index 9001cf5f..00000000 --- a/framework/src/onos/utils/misc/src/main/java/org/onlab/util/GroupedThreadFactory.java +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright 2015 Open Networking Laboratory - * - * Licensed 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 - * - * http://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.onlab.util; - -import org.apache.commons.lang3.concurrent.ConcurrentUtils; - -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.ThreadFactory; - -import static com.google.common.base.MoreObjects.toStringHelper; - -/** - * Thread factory for creating threads that belong to the specified thread group. - */ -public final class GroupedThreadFactory implements ThreadFactory { - - public static final String DELIMITER = "/"; - - private final ThreadGroup group; - - // Cache of created thread factories. - private static final ConcurrentHashMap<String, GroupedThreadFactory> FACTORIES = - new ConcurrentHashMap<>(); - - /** - * Returns thread factory for producing threads associated with the specified - * group name. The group name-space is hierarchical, based on slash-delimited - * name segments, e.g. {@code onos/intent}. - * - * @param groupName group name - * @return thread factory - */ - public static GroupedThreadFactory groupedThreadFactory(String groupName) { - GroupedThreadFactory factory = FACTORIES.get(groupName); - if (factory != null) { - return factory; - } - - // Find the parent group or root the group hierarchy under default group. - int i = groupName.lastIndexOf(DELIMITER); - if (i > 0) { - String name = groupName.substring(0, i); - ThreadGroup parentGroup = groupedThreadFactory(name).threadGroup(); - factory = new GroupedThreadFactory(new ThreadGroup(parentGroup, groupName)); - } else { - factory = new GroupedThreadFactory(new ThreadGroup(groupName)); - } - - return ConcurrentUtils.putIfAbsent(FACTORIES, groupName, factory); - } - - // Creates a new thread group - private GroupedThreadFactory(ThreadGroup group) { - this.group = group; - } - - /** - * Returns the thread group associated with the factory. - * - * @return thread group - */ - public ThreadGroup threadGroup() { - return group; - } - - @Override - public Thread newThread(Runnable r) { - return new Thread(group, r); - } - - @Override - public String toString() { - return toStringHelper(this).add("group", group).toString(); - } -} |