This is the mail archive of the frysk-cvs@sources.redhat.com mailing list for the frysk project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[SCM] master: Narrow frysk.sys.Signal interface; add Signal.toHostStringFIXME(int).


The branch, master has been updated
       via  117422ccf61c585a3f3abe6ac091ffa59f372d9b (commit)
       via  7b85dda145211729181ce6f45d3decb6b43a9f74 (commit)
      from  60417d494d83e0ab894361b57493198a205c9d61 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email.

- Log -----------------------------------------------------------------
commit 117422ccf61c585a3f3abe6ac091ffa59f372d9b
Merge: 7b85dda145211729181ce6f45d3decb6b43a9f74 60417d494d83e0ab894361b57493198a205c9d61
Author: Andrew Cagney <cagney@toil.yyz.redhat.com>
Date:   Wed Jan 23 16:00:17 2008 -0500

    Narrow frysk.sys.Signal interface; add Signal.toHostStringFIXME(int).

commit 7b85dda145211729181ce6f45d3decb6b43a9f74
Author: Andrew Cagney <cagney@toil.yyz.redhat.com>
Date:   Wed Jan 23 15:59:54 2008 -0500

    Narrow frysk.sys.Signal interface; add Signal.toHostStringFIXME.
    
    frysk-core/frysk/debuginfo/ChangeLog
    2008-01-23  Andrew Cagney  <cagney@redhat.com>
    
    	* TestDebugInfoStackTrace.java (testBacktrace()): Use
    	Integer.toString(int) not Signal.toString().
    	(testThreadedBacktrace()): Ditto.
    	(testFramePushing()): Ditto.
    	(testFramePopping()): Ditto.
    
    frysk-core/frysk/event/ChangeLog
    2008-01-23  Andrew Cagney  <cagney@redhat.com>
    
    	* WaitEventLoop.java: Use Signal.toString().
    
    frysk-core/frysk/ftrace/ChangeLog
    2008-01-23  Andrew Cagney  <cagney@redhat.com>
    
    	* Ftrace.java (MyTerminatedObserver): Replace Signal.intValue(int)
    	and Signal.toPrint() with Signal.toHostStringFIXME(int).
    
    frysk-core/frysk/stepping/ChangeLog
    2008-01-23  Andrew Cagney  <cagney@redhat.com>
    
    	* TestStepping.java (testStepGoto()): Use Integer.toString(int)
    	not Signal.toString().
    	(testStepSigRaise()): Ditto.
    	(testStepSigLongJmp()): Ditto.
    
    frysk-gui/frysk/gui/monitor/ChangeLog
    2008-01-23  Andrew Cagney  <cagney@redhat.com>
    
    	* observers/TaskSignaledObserver.java: Replace Signal.valueOf(int)
    	and Signal.toPrint() with Signal.toHostStringFIXME(int).
    	* observers/TaskTerminatingObserver.java: Ditto.
    
    frysk-sys/frysk/sys/ChangeLog
    2008-01-23  Andrew Cagney  <cagney@redhat.com>
    
    	* Signal.java-sh (valueOf(int)): Make package-private.
    	(Signal(int)): New constructor.
    	(toString()): Dump both the name and value.
    	(getHostSignalSet()): New.
    	(toHostStringFIXME(int)): New.
    	(stringValue()): Delete.
    	(toPrint()): Delete.
    	* TestSignal.java (testGaps()): New.
    	* SignalSet.java (add(Signal[])): Ignore null entries.
    	(toArray()): Implement in java.
    	* cni/SignalSet.cxx (JArray): Delete.
    	* UnhandledWaitBuilder.java: Update.

-----------------------------------------------------------------------

Summary of changes:
 frysk-core/frysk/debuginfo/ChangeLog               |    8 ++
 .../frysk/debuginfo/TestDebugInfoStackTrace.java   |   21 ++--
 frysk-core/frysk/event/ChangeLog                   |    4 +
 frysk-core/frysk/event/WaitEventLoop.java          |    2 +-
 frysk-core/frysk/ftrace/ChangeLog                  |    5 +
 frysk-core/frysk/ftrace/Ftrace.java                |    4 +-
 frysk-core/frysk/stepping/ChangeLog                |    7 ++
 frysk-core/frysk/stepping/TestStepping.java        |   14 ++--
 frysk-gui/frysk/gui/monitor/ChangeLog              |    6 +
 .../monitor/observers/TaskSignaledObserver.java    |    8 +-
 .../monitor/observers/TaskTerminatingObserver.java |    6 +-
 frysk-sys/frysk/sys/ChangeLog                      |   15 +++
 frysk-sys/frysk/sys/Signal.java-sh                 |  112 +++++++++++--------
 frysk-sys/frysk/sys/SignalSet.java                 |   27 ++++--
 frysk-sys/frysk/sys/TestSignal.java                |   25 ++++-
 frysk-sys/frysk/sys/UnhandledWaitBuilder.java      |    2 +-
 frysk-sys/frysk/sys/cni/SignalSet.cxx              |   19 +---
 17 files changed, 179 insertions(+), 106 deletions(-)

First 500 lines of diff:
diff --git a/frysk-core/frysk/debuginfo/ChangeLog b/frysk-core/frysk/debuginfo/ChangeLog
index 55436de..9c69266 100644
--- a/frysk-core/frysk/debuginfo/ChangeLog
+++ b/frysk-core/frysk/debuginfo/ChangeLog
@@ -1,3 +1,11 @@
+2008-01-23  Andrew Cagney  <cagney@redhat.com>
+
+	* TestDebugInfoStackTrace.java (testBacktrace()): Use
+	Integer.toString(int) not Signal.toString().
+	(testThreadedBacktrace()): Ditto.
+	(testFramePushing()): Ditto.
+	(testFramePopping()): Ditto.
+
 2008-01-23  Mark Wielaard  <mwielaard@redhat.com>
 
 	* TestFrameDebugInfo.java: Add NoDebug and NoEH variants of
diff --git a/frysk-core/frysk/debuginfo/TestDebugInfoStackTrace.java b/frysk-core/frysk/debuginfo/TestDebugInfoStackTrace.java
index 2854d88..b95cdd0 100644
--- a/frysk-core/frysk/debuginfo/TestDebugInfoStackTrace.java
+++ b/frysk-core/frysk/debuginfo/TestDebugInfoStackTrace.java
@@ -1,6 +1,6 @@
 // This file is part of the program FRYSK.
 //
-// Copyright 2005, 2006, 2007, Red Hat Inc.
+// Copyright 2005, 2006, 2007, 2008, Red Hat Inc.
 //
 // FRYSK is free software; you can redistribute it and/or modify it
 // under the terms of the GNU General Public License as published by
@@ -98,8 +98,8 @@ public class TestDebugInfoStackTrace
     SynchronizedOffspring process
 	= new SynchronizedOffspring (Signal.USR1, new String[] {
 					 getExecPath ("funit-rt-looper"),
-					 "" + Pid.get (),
-					 Signal.USR1.toString()
+					 Integer.toString(Pid.get ()),
+					 Integer.toString(Signal.USR1.intValue())
 				     });
     myTask = process.findTaskUsingRefresh(true);
     assertNotNull(myTask);
@@ -205,8 +205,7 @@ public class TestDebugInfoStackTrace
     Manager.eventLoop.requestStop();
   }
   
-  public synchronized void testThreadedBacktrace ()
-  {
+  public synchronized void testThreadedBacktrace() {
       // Backtraces only work on x86 and x86_64 for now.
       if (unresolvedOnPPC(3277))
 	  return;
@@ -217,8 +216,8 @@ public class TestDebugInfoStackTrace
     SynchronizedOffspring process
 	= new SynchronizedOffspring (Signal.USR1, new String[] {
 					 getExecPath ("funit-rt-threader"),
-					 "" + Pid.get (),
-					 Signal.USR1.toString()
+					 Integer.toString(Pid.get ()),
+					 Integer.toString(Signal.USR1.intValue())
 				     });
     myTask = process.findTaskUsingRefresh(true);
     
@@ -267,8 +266,8 @@ public class TestDebugInfoStackTrace
   SynchronizedOffspring process
       = new SynchronizedOffspring (Signal.USR1, new String[] {
 				       getExecPath ("funit-rt-stepper"),
-				       "" + Pid.get (),
-				       Signal.USR1.toString()
+				       Integer.toString(Pid.get()),
+				       Integer.toString(Signal.USR1.intValue())
 				   });
   myTask = process.findTaskUsingRefresh(true);
   myProc = myTask.getProc();
@@ -305,8 +304,8 @@ public class TestDebugInfoStackTrace
   SynchronizedOffspring process
       = new SynchronizedOffspring (Signal.USR1, new String[] {
 				       getExecPath ("funit-rt-stepper"),
-				       "" + Pid.get (),
-				       Signal.USR1.toString()
+				       Integer.toString(Pid.get ()),
+				       Integer.toString(Signal.USR1.intValue())
 				   });
   myTask = process.findTaskUsingRefresh(true);
   myProc = myTask.getProc();
diff --git a/frysk-core/frysk/event/ChangeLog b/frysk-core/frysk/event/ChangeLog
index 478a02f..491323f 100644
--- a/frysk-core/frysk/event/ChangeLog
+++ b/frysk-core/frysk/event/ChangeLog
@@ -1,3 +1,7 @@
+2008-01-23  Andrew Cagney  <cagney@redhat.com>
+
+	* WaitEventLoop.java: Use Signal.toString().
+
 2007-12-04  Andrew Cagney  <cagney@redhat.com>
 
 	Merge frysk.sys.Sig into frysk.sys.Signal.
diff --git a/frysk-core/frysk/event/WaitEventLoop.java b/frysk-core/frysk/event/WaitEventLoop.java
index 9898d25..6a11709 100644
--- a/frysk-core/frysk/event/WaitEventLoop.java
+++ b/frysk-core/frysk/event/WaitEventLoop.java
@@ -74,7 +74,7 @@ class WaitEventLoop
 	    {
 	      if (logger.isLoggable(Level.FINEST))
 		{
-		  Object[] logArgs = { this, sig.toPrint() };
+		  Object[] logArgs = { this, sig.toString() };
 		  logger.log (Level.FINEST, "{0} PollBuilder.signal {1}\n",
 			      logArgs); 
 		}
diff --git a/frysk-core/frysk/ftrace/ChangeLog b/frysk-core/frysk/ftrace/ChangeLog
index 28a2af3..e217a3f 100644
--- a/frysk-core/frysk/ftrace/ChangeLog
+++ b/frysk-core/frysk/ftrace/ChangeLog
@@ -1,3 +1,8 @@
+2008-01-23  Andrew Cagney  <cagney@redhat.com>
+
+	* Ftrace.java (MyTerminatedObserver): Replace Signal.intValue(int)
+	and Signal.toPrint() with Signal.toHostStringFIXME(int).
+
 2008-01-16  Andrew Cagney  <cagney@redhat.com>
 
 	* Ltrace.java: Update; Task.blockers made private; use workaround.
diff --git a/frysk-core/frysk/ftrace/Ftrace.java b/frysk-core/frysk/ftrace/Ftrace.java
index bda1595..c44fc7a 100644
--- a/frysk-core/frysk/ftrace/Ftrace.java
+++ b/frysk-core/frysk/ftrace/Ftrace.java
@@ -1,6 +1,6 @@
 // This file is part of the program FRYSK.
 //
-// Copyright 2005, 2006, 2007, Red Hat Inc.
+// Copyright 2005, 2006, 2007, 2008, Red Hat Inc.
 //
 // FRYSK is free software; you can redistribute it and/or modify it
 // under the terms of the GNU General Public License as published by
@@ -554,7 +554,7 @@ public class Ftrace
 					int value)
 	{
 	    if (signal)
-		reporter.eventSingle(task, "killed by " + Signal.valueOf(value).toPrint());
+		reporter.eventSingle(task, "killed by " + Signal.toHostStringFIXME(value));
 	    else
 		reporter.eventSingle(task, "exited with status " + value);
 
diff --git a/frysk-core/frysk/stepping/ChangeLog b/frysk-core/frysk/stepping/ChangeLog
index c263c88..da4fbd0 100644
--- a/frysk-core/frysk/stepping/ChangeLog
+++ b/frysk-core/frysk/stepping/ChangeLog
@@ -1,3 +1,10 @@
+2008-01-23  Andrew Cagney  <cagney@redhat.com>
+
+	* TestStepping.java (testStepGoto()): Use Integer.toString(int)
+	not Signal.toString().
+	(testStepSigRaise()): Ditto.
+	(testStepSigLongJmp()): Ditto.
+
 2008-01-17  Rick Moseley  <rmoseley@redhat.com>
 
 	* SteppingEngine.java: Test for valid proc before proceeding.
diff --git a/frysk-core/frysk/stepping/TestStepping.java b/frysk-core/frysk/stepping/TestStepping.java
index 3c6dd10..6ea8378 100644
--- a/frysk-core/frysk/stepping/TestStepping.java
+++ b/frysk-core/frysk/stepping/TestStepping.java
@@ -1,6 +1,6 @@
 // This file is part of the program FRYSK.
 //
-// Copyright 2007, Red Hat Inc.
+// Copyright 2007, 2008, Red Hat Inc.
 //
 // FRYSK is free software; you can redistribute it and/or modify it
 // under the terms of the GNU General Public License as published by
@@ -323,8 +323,8 @@ public class TestStepping extends TestLib {
 	    = new SynchronizedOffspring(Signal.USR1,
 					new String[] {
 					    getExecPath("funit-rt-siglongjmp"),
-					    "" + Pid.get(),
-					    Signal.USR1.toString()
+					    Integer.toString(Pid.get()),
+					    Integer.toString(Signal.USR1.intValue())
 					});
 	this.testStarted = false;
 
@@ -370,8 +370,8 @@ public class TestStepping extends TestLib {
 	    = new SynchronizedOffspring(Signal.USR1,
 					new String[] {
 					    getExecPath("funit-rt-goto"),
-					    "" + Pid.get(),
-					    Signal.USR1.toString()
+					    Integer.toString(Pid.get()),
+					    Integer.toString(Signal.USR1.intValue())
 					});
 	this.testStarted = false;
 
@@ -420,8 +420,8 @@ public class TestStepping extends TestLib {
 	    = new SynchronizedOffspring(Signal.USR1,
 					new String[] {
 					    getExecPath("funit-rt-sigraise"),
-					    "" + Pid.get(),
-					    Signal.USR1.toString()
+					    Integer.toString(Pid.get()),
+					    Integer.toString(Signal.USR1.intValue())
 					});
 	this.testStarted = false;
 
diff --git a/frysk-gui/frysk/gui/monitor/ChangeLog b/frysk-gui/frysk/gui/monitor/ChangeLog
index e4b5074..88325b8 100644
--- a/frysk-gui/frysk/gui/monitor/ChangeLog
+++ b/frysk-gui/frysk/gui/monitor/ChangeLog
@@ -1,3 +1,9 @@
+2008-01-23  Andrew Cagney  <cagney@redhat.com>
+
+	* observers/TaskSignaledObserver.java: Replace Signal.valueOf(int)
+	and Signal.toPrint() with Signal.toHostStringFIXME(int).
+	* observers/TaskTerminatingObserver.java: Ditto.
+
 2007-12-28  Andrew Cagney  <cagney@redhat.com>
 
 	frysk.proc.TaskObserver.Syscall renamed to .Syscalls.
diff --git a/frysk-gui/frysk/gui/monitor/observers/TaskSignaledObserver.java b/frysk-gui/frysk/gui/monitor/observers/TaskSignaledObserver.java
index a093794..c9c8854 100644
--- a/frysk-gui/frysk/gui/monitor/observers/TaskSignaledObserver.java
+++ b/frysk-gui/frysk/gui/monitor/observers/TaskSignaledObserver.java
@@ -1,6 +1,6 @@
 // This file is part of the program FRYSK.
 //
-// Copyright 2006, Red Hat Inc.
+// Copyright 2006, 2008, Red Hat Inc.
 //
 // FRYSK is free software; you can redistribute it and/or modify it
 // under the terms of the GNU General Public License as published by
@@ -123,7 +123,7 @@ public class TaskSignaledObserver extends TaskObserverRoot implements
     private void bottomHalf(final Task task, final int signal) {
 	setInfo(getName() + ": " + "PID: " + task.getProc().getPid()
 		+ " TID: " + task.getTid() + " Event: has pending signal: "
-		+ Signal.valueOf(signal).toPrint()
+		+ Signal.toHostStringFIXME(signal)
 		+ " Host: " + Manager.host.getName());
 	if (runFilters(task, signal)) {
 	    this.runActions(task, signal);
@@ -137,9 +137,9 @@ public class TaskSignaledObserver extends TaskObserverRoot implements
 
     private void runActions(final Task task, int signal) {
 	// XXX: This is the host and not target signal
-        Event event = new Event("signaled " + Signal.valueOf(signal).toPrint(),
+        Event event = new Event("signaled " + Signal.toHostStringFIXME(signal),
 				"task recieved signal "
-				+ Signal.valueOf(signal).toPrint(),
+				+ Signal.toHostStringFIXME(signal),
 				GuiTask.GuiTaskFactory.getGuiTask(task), this);
 	super.runActions();
 	taskActionPoint.runActions(task, this, event);
diff --git a/frysk-gui/frysk/gui/monitor/observers/TaskTerminatingObserver.java b/frysk-gui/frysk/gui/monitor/observers/TaskTerminatingObserver.java
index d12e80f..48dd4a5 100644
--- a/frysk-gui/frysk/gui/monitor/observers/TaskTerminatingObserver.java
+++ b/frysk-gui/frysk/gui/monitor/observers/TaskTerminatingObserver.java
@@ -1,6 +1,6 @@
 // This file is part of the program FRYSK.
 //
-// Copyright 2005, Red Hat Inc.
+// Copyright 2005, 2008, Red Hat Inc.
 //
 // FRYSK is free software; you can redistribute it and/or modify it
 // under the terms of the GNU General Public License as published by
@@ -154,8 +154,8 @@ public class TaskTerminatingObserver
 	
 	if (signal) {
 	    // XXX: This is the host, and not the target signal :-(
-	    name += " sig " + Signal.valueOf(value).toPrint();
-	    tooltip += " with signal " + Signal.valueOf(value).toPrint();
+	    name += " sig " + Signal.toHostStringFIXME(value);
+	    tooltip += " with signal " + Signal.toHostStringFIXME(value);
 	}
 	EventManager.theManager.addEvent(event);
     }
diff --git a/frysk-sys/frysk/sys/ChangeLog b/frysk-sys/frysk/sys/ChangeLog
index fe04ade..b233dc8 100644
--- a/frysk-sys/frysk/sys/ChangeLog
+++ b/frysk-sys/frysk/sys/ChangeLog
@@ -1,3 +1,18 @@
+2008-01-23  Andrew Cagney  <cagney@redhat.com>
+
+	* Signal.java-sh (valueOf(int)): Make package-private.
+	(Signal(int)): New constructor.
+	(toString()): Dump both the name and value.
+	(getHostSignalSet()): New.
+	(toHostStringFIXME(int)): New.
+	(stringValue()): Delete.
+	(toPrint()): Delete.
+	* TestSignal.java (testGaps()): New.
+	* SignalSet.java (add(Signal[])): Ignore null entries.
+	(toArray()): Implement in java.
+	* cni/SignalSet.cxx (JArray): Delete.
+	* UnhandledWaitBuilder.java: Update.
+
 2008-01-22  Andrew Cagney  <cagney@redhat.com>
 
 	* Ptrace.java (detach(int,int)): Make private.
diff --git a/frysk-sys/frysk/sys/Signal.java-sh b/frysk-sys/frysk/sys/Signal.java-sh
index 0f433a9..6c91559 100644
--- a/frysk-sys/frysk/sys/Signal.java-sh
+++ b/frysk-sys/frysk/sys/Signal.java-sh
@@ -60,50 +60,46 @@ public class Signal implements Comparable {
 	this.sig = sig;
 	this.name = name;
     }
+    private Signal(int sig) {
+        this.sig = sig;
+        this.name = "SIG" + sig;
+    }
 
     /**
-     * Dump the signal to a string.
+     * Dump the signal to a string.  The format is "NAME(VALUE)".
      */
     public String toString() {
-        return Integer.toString(hashCode());
-	// return name + "(" + hashCode() + ")";
+	return name + "(" + this.intValue() + ")";
     }
 
     /**
-     * Return the signal's numeric value as an integer.
-     */
-    public int intValue() {
-	return hashCode();
-    }
-    /**
-     * Return the signal's numeric value as a String.
+     * Hash on the Signal's intValue.
      */
-    public String stringValue() {
-        return Integer.toString(hashCode());
+    public int hashCode() {
+	return intValue();
     }
+
     /**
-     * Return the Signal in a form suitable for printing to the user.
+     * Return the signal's numeric value as an integer.
      */
-    public String toPrint() {
-        return name;
+    public int intValue() {
+        return sig;
     }
 
     /**
-     * Comparison operations; use hashCode() so that sub-classing can
-     * provide a scratch value.
+     * Comparison operations; use intValue() so that sub-classing can
+     * provide a scratch int value.
      */
     public boolean equals(Object o) {
-	return (o instanceof Signal && o.hashCode() == this.hashCode());
+        return ((o instanceof Signal)
+                && ((Signal) o).intValue() == this.intValue());
     }
     public boolean equals(int sig) {
-	return this.sig == sig;
-    }
-    public int hashCode() {
-	return sig;
+	return this.intValue() == sig;
     }
     public int compareTo(Object o) {
 	Signal rhs = (Signal)o; // exception ok
-	return rhs.sig - this.sig;
+	return rhs.intValue() - this.intValue();
     }
 
     /**
@@ -116,20 +112,20 @@ public class Signal implements Comparable {
      * Deliver SIG to process PID.
      */
     public void kill(ProcessIdentifier pid) {
-	kill(pid.intValue(), this.sig);
+	kill(pid.intValue(), this.intValue());
     }
     private static native void kill(int pid, int signum);
     /**
      * Deliver SIGNAL to task (or thread) LWP.
      */
     public final void tkill(int lwp) {
-	tkill(lwp, sig);
+	tkill(lwp, this.intValue());
     }
     /**
      * Deliver SIGNAL to task (or thread) LWP.
      */
     public final void tkill(ProcessIdentifier lwp) {
-	tkill(lwp.intValue(), this.sig);
+	tkill(lwp.intValue(), this.intValue());
     }
     public static native void tkill(int lwp, int signum);
 
@@ -143,33 +139,52 @@ public class Signal implements Comparable {
     private static native void drain(int signum);
 
     /**
-     * Given an integer, return the corresponding signal.
+     * Return the known <b>host</b> signals as a SignalSet.
+     */
+    public static SignalSet getHostSignalSet() {
+        return new SignalSet(signals);
+    }
+
+    /**
+     * Return the <b>host</b> signal as a string.
+     * 
+     * For frysk what you instead want is a conversion from the
+     * integer to the <b>target</b>'s string representation.
+     * See the numbering described in signal(7) for the problems.
+     */
+    public static String toHostStringFIXME(int signal) {
+        return valueOf(signal).toString();
+    }
+
+    /**
+     * Given an integer, return the corresponding <b>host</b> signal.
      * If the signal is unknown, make one up.
+     *
+     * This is method is <b>package-private</b>.  If you need to convert
+     * a target signal to a Signal object, see frysk.proc.Signal.
      */
-    public static Signal valueOf(int signum) {
+    static Signal valueOf(int signum) {
 	if (signum < 0) {
 	    throw new NullPointerException("invalid signal: " + signum);
         } else if (signum < signals.length) {
             Signal signal = signals[signum];
-            if (signal == null)
-	        throw new NullPointerException("invalid signal: " + signum);
-            else
+            if (signal != null)
                 return signal;
-        } else if (signum >= rtMin() && signum <= rtMax()) {
-            return rtSignals[signum - rtMin()];
-        } else {
-            // Fudge up a signal; beter than throwing an exception.
-            synchronized (unknownSignals) {
-                scratchSignal.signum = signum;
-                Signal signal = (Signal)unknownSignals.get(scratchSignal);
-                if (signal != null)
-                    return signal;
-                signal = new Signal(signum, "SIG" + signum);
-                unknownSignals.put(signal, signal);
+            // Fall through to bottom which will make up a signal.
+        }
+        // Unknown signal, fudge one up; beter than throwing
+        // an exception.
+        synchronized (unknownSignals) {
+            scratchSignal.signum = signum;
+            Signal signal = (Signal)unknownSignals.get(scratchSignal);
+            if (signal != null)
                 return signal;
-            }
+            signal = new Signal(signum);
+            unknownSignals.put(signal, signal);
+            return signal;
         }
     }
+
     /**
      * A scratch value for searching the signal table.
      */
@@ -178,7 +193,7 @@ public class Signal implements Comparable {
            super(0, "<scratch signal>");
        }
         int signum;
-        public int hashCode() {
+        public int intValue() {
            return signum;
         }
     }
@@ -192,8 +207,8 @@ public class Signal implements Comparable {
     private static native int nsig();
     private static native int rtMin();
     private static native int rtMax();
+    // Note: nsig()
     private static final Signal[] signals = new Signal[nsig()];
-    private static final Signal[] rtSignals = new Signal[rtMax()-rtMin()+1];
     /**
      * Create a signal, also enter the signal into the signals table
      * for later retrieval.
@@ -222,8 +237,11 @@ done
 
 cat <<EOF
     static {
-        for (int sig = rtMin(); sig <= rtMax(); sig++) {
-            rtSignals[sig - rtMin()] = new Signal(sig, "SIGRT" + sig);
+        // Populate the run-time signal table.  XXX while signal(7)
+        // seems to imply rtMax() is valid (cannot "exceed"), the code
+        // suggests otherwise.
+        for (int sig = rtMin(); sig < rtMax(); sig++) {
+            signals[sig] = new Signal(sig, "SIGRT" + sig);
         }
     }
 }
diff --git a/frysk-sys/frysk/sys/SignalSet.java b/frysk-sys/frysk/sys/SignalSet.java
index 408e649..bc40158 100644
--- a/frysk-sys/frysk/sys/SignalSet.java
+++ b/frysk-sys/frysk/sys/SignalSet.java
@@ -1,6 +1,6 @@


hooks/post-receive
--
frysk system monitor/debugger


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]