All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.apexes.commons.lang.ProcessIdentifier Maven / Gradle / Ivy

There is a newer version: 2.1.6
Show newest version
/*
 * Copyright (c) 2018, apexes.net. All rights reserved.
 *
 *         http://www.apexes.net
 *
 */
package net.apexes.commons.lang;

import net.apexes.commons.lang.ext.JseProcessIdentifier;

/**
 * @author HeDYn
 */
public interface ProcessIdentifier {

    short processId();

    /**
     * @author HeDYn
     */
    class Impl {

        private static volatile Short processId;

        public static void set(ProcessIdentifier processIdentifier) {
            synchronized (Impl.class) {
                processId = processIdentifier.processId();
            }
        }

        public static short processId() {
            if (processId == null) {
                synchronized (Impl.class) {
                    if (processId == null) {
                        processId = JseProcessIdentifier.myPid();
                    }
                }
            }
            return processId;
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy