[jboss-svn-commits] JBL Code SVN: r37007 - labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/utils.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue May 17 10:10:09 EDT 2011


Author: mark.little at jboss.com
Date: 2011-05-17 10:10:08 -0400 (Tue, 17 May 2011)
New Revision: 37007

Added:
   labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/utils/UuidProcessId.java
Log:
Added UUID implementation.

Added: labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/utils/UuidProcessId.java
===================================================================
--- labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/utils/UuidProcessId.java	                        (rev 0)
+++ labs/jbosstm/trunk/ArjunaCore/arjuna/classes/com/arjuna/ats/internal/arjuna/utils/UuidProcessId.java	2011-05-17 14:10:08 UTC (rev 37007)
@@ -0,0 +1,68 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+/*
+ * Copyright (C) 2001,
+ *
+ * Hewlett-Packard Arjuna Labs,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: SocketProcessId.java 2342 2006-03-30 13:06:17Z  $
+ */
+
+package com.arjuna.ats.internal.arjuna.utils;
+
+import java.util.UUID;
+
+/**
+ * Obtains a unique value to represent the process id via UUID.
+ */
+
+public class UuidProcessId implements com.arjuna.ats.arjuna.utils.Process
+{
+    /**
+     * @return the process id. This had better be unique between processes on
+     *         the same machine. If not we're in trouble!
+     */
+
+    public int getpid ()
+    {
+        /*
+         * UUID contains 2*64 bit fields, which we need to convert to a 32 bit number.
+         * We will lose accuracy and increase the probability of a process id clash.
+         */
+        
+        synchronized (UuidProcessId._theUid)
+        {
+            if (_pid == -1)
+            {
+                _pid = (int) (_theUid.getLeastSignificantBits() ^ _theUid.getMostSignificantBits());
+            }
+        }
+
+        return _pid;
+    }
+
+    private static UUID _theUid = UUID.randomUUID();
+    
+    private int _pid = -1;
+}



More information about the jboss-svn-commits mailing list