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: Push the Task notify code into LinuxPtraceTask.


The branch, master has been updated
       via  a0079985d4dda172b0a672fd1c73b647ac5bee35 (commit)
       via  99efe6881517f4600199d07c24ca040da70b72eb (commit)
       via  c43833bc36ef5c19cec682f48b4cfed3d0ba86af (commit)
       via  ebff8ac5406157b84742901b3d36e391c17d2e27 (commit)
       via  6a48b4753eb27965a07cc13f8579da76e4b7f8ee (commit)
       via  da9637baf507a0f780cf6921ff92e2beb3f99032 (commit)
      from  36d3c3df1ee1a988cc5ee922f9f4652e9b8789b3 (commit)

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

- Log -----------------------------------------------------------------
commit a0079985d4dda172b0a672fd1c73b647ac5bee35
Author: Andrew Cagney <cagney@redhat.com>
Date:   Fri Jan 4 18:00:57 2008 -0500

    Push the Task notify code into LinuxPtraceTask.
    
    frysk-core/frysk/proc/ChangeLog
    2008-01-04  Andrew Cagney  <cagney@redhat.com>
    
    	* TaskObservable.java: Make public.
    	* Task.java (terminatingObservers): Delete.
    	(notifyTerminating(boolean,int)): Delete.
    	(terminatedObservers, notifyTerminated(boolean,int)): Delete.
    	(execedObservers, notifyExeced()): Delete.
    	(attachedObservers, notifyAttached()): Delete.
    	(signaledObservers, notifySignaled(int)): Delete.
    	(syscallObservers, notifySyscallEnter(), notifySyscallExit): Delete.
    	(clonedObservers, notifyClonedParent(Task))
    	(notifyClonedOfspring()): Delete.
    	(forkedObservers, notifyForkedParent(Task))
    	(notifyForkedOfspring()): Delete.
    	(instructionObservers, notifyInstruction()): Delete.
    	(codeObservers, notifyCodeBreakpoint()): New.
    
    frysk-core/frysk/proc/live/ChangeLog
    2008-01-04  Andrew Cagney  <cagney@redhat.com>
    
    	* LinuxPtraceTask.java (terminatingObservers): New.
    	(notifyTerminating(boolean,int)): New.
    	(terminatedObservers, notifyTerminated(boolean,int)): New.
    	(execedObservers, notifyExeced()): New.
    	(signaledObservers, notifySignaled(int)): New.
    	(syscallObservers, notifySyscallEnter(), notifySyscallExit()): New.
    	(clonedObservers, notifyClonedParent(Task))
    	(notifyClonedOfspring()): New.
    	(forkedObservers, notifyForkedParent(Task))
    	(notifyForkedOfspring()): New.
    	(instructionObservers, notifyInstruction()): New.
    	(attachedObservers, notifyAttached()): New.
    	(codeObservers, notifyCodeBreakpoint()): New.
    	* LinuxPtraceProc.java: Update.

commit 99efe6881517f4600199d07c24ca040da70b72eb
Author: Andrew Cagney <cagney@redhat.com>
Date:   Fri Jan 4 15:21:12 2008 -0500

    Move removeObservers to LinuxPtraceTask.
    
    frysk-core/frysk/proc/ChangeLog
    2008-01-04  Andrew Cagney  <cagney@redhat.com>
    
    	* Task.java (removeObservers()): Delete.
    
    frysk-core/frysk/proc/live/ChangeLog
    2008-01-04  Andrew Cagney  <cagney@redhat.com>
    
    	* LinuxPtraceTask.java (removeObservers()): Copied to here from
    	frysk.proc.Task.

commit c43833bc36ef5c19cec682f48b4cfed3d0ba86af
Author: Andrew Cagney <cagney@redhat.com>
Date:   Fri Jan 4 14:26:35 2008 -0500

    Make Proc's perform methods local to LinuxPtraceProc.
    
    frysk-core/frysk/proc/ChangeLog
    2008-01-04  Andrew Cagney  <cagney@redhat.com>
    
    	* Proc.java (performRemoval()): Delete.
    	(performTaskAttachCompleted(Task)): Delete.
    	(performTaskDetachCompleted(Task)): Delete.
    	(performTaskDetachCompleted(Task,Task)): Delete.
    
    frysk-core/frysk/proc/dead/ChangeLog
    2008-01-04  Andrew Cagney  <cagney@redhat.com>
    
    	* DeadProc.java (performRemoval()): Delete.
    	(performTaskAttachCompleted(Task)): Delete.
    	(performTaskDetachCompleted(Task)): Delete.
    	(performTaskDetachCompleted(Task,Task)): Delete.
    
    frysk-core/frysk/proc/dummy/ChangeLog
    2008-01-04  Andrew Cagney  <cagney@redhat.com>
    
    	* DummyProc.java (performRemoval()): Delete.
    	(performTaskAttachCompleted(Task)): Delete.
    	(performTaskDetachCompleted(Task)): Delete.
    	(performTaskDetachCompleted(Task,Task)): Delete.
    
    frysk-core/frysk/proc/live/ChangeLog
    2008-01-04  Andrew Cagney  <cagney@redhat.com>
    
    	* LinuxPtraceProc.java (performRemoval()): Make package-private.
    	(performTaskAttachCompleted(Task)): Ditto.
    	(performTaskDetachCompleted(Task)): Ditto.
    	(performTaskDetachCompleted(Task,Task)): Ditto.
    	* LinuxPtraceTaskState.java: Update.
    	* LinuxPtraceHost.java: Update.

commit ebff8ac5406157b84742901b3d36e391c17d2e27
Author: Andrew Cagney <cagney@redhat.com>
Date:   Fri Jan 4 14:00:43 2008 -0500

    Make send methods local to LinuxPtraceProc.
    
    frysk-core/frysk/proc/ChangeLog
    2008-01-04  Andrew Cagney  <cagney@redhat.com>
    
    	* Task.java (sendContinue(int)): Delete.
    	(sendSyscallContinue(int)): Delete.
    	(sendStepInstruction(int)): Delete.
    	(sendStop()): Delete.
    	(sendSetOptions()): Delete.
    	(sendAttach()): Delete.
    	(sendDetach()): Delete.
    	(startTracingSyscalls()): Delete.
    	(stopTracingSyscalls()): Delete.
    
    frysk-core/frysk/proc/live/ChangeLog
    2008-01-04  Andrew Cagney  <cagney@redhat.com>
    
    	* LinuxPtraceProc.java (SyscallAction): Replace Task with
    	LinuxPtraceTask.

commit 6a48b4753eb27965a07cc13f8579da76e4b7f8ee
Author: Andrew Cagney <cagney@redhat.com>
Date:   Fri Jan 4 13:36:34 2008 -0500

    Make state actions local to LinuxPtraceTask.
    
    frysk-core/frysk/proc/ChangeLog
    2008-01-04  Andrew Cagney  <cagney@redhat.com>
    
    	* Task.java (performRemoval()): Delete.
    	(performContinue()): Delete.
    	(performAttach(boolean)): Delete.
    	(performDetach(boolean)): Delete.
    	(handleUnblock(TaskObserver)): Delete.
    	* TaskObservation.java: Update.
    
    frysk-core/frysk/proc/dead/ChangeLog
    2008-01-04  Andrew Cagney  <cagney@redhat.com>
    
    	* DeadTask.java (performRemoval()): Delete.
    	(performContinue()): Delete.
    	(performAttach(boolean)): Delete.
    	(performDetach(boolean)): Delete.
    	(handleUnblock(TaskObserver)): Delete.
    
    frysk-core/frysk/proc/dummy/ChangeLog
    2008-01-04  Andrew Cagney  <cagney@redhat.com>
    
    	* DummyTask.java (performRemoval()): Delete.
    	(performContinue()): Delete.
    	(performAttach(boolean)): Delete.
    	(performDetach(boolean)): Delete.
    	(handleUnblock(TaskObserver)): Delete.
    
    frysk-core/frysk/proc/live/ChangeLog
    2008-01-04  Andrew Cagney  <cagney@redhat.com>
    
    	* LinuxPtraceTask.java (performRemoval()): Make package-private..
    	(performContinue()): Ditto.
    	(performAttach(boolean)): Ditto.
    	(performDetach(boolean)): Ditto.
    	(handleUnblock(TaskObserver)): Ditto..
    	* LinuxPtraceProc.java: Update.

commit da9637baf507a0f780cf6921ff92e2beb3f99032
Author: Andrew Cagney <cagney@redhat.com>
Date:   Fri Jan 4 13:17:00 2008 -0500

    In LinuxPtrace*State use LinuxPtraceTask and LinuxPtraceProc.
    
    frysk-core/frysk/proc/live/ChangeLog
    2008-01-04  Andrew Cagney  <cagney@redhat.com>
    
    	* LinuxPtraceTaskState.java: Replace Task with LinuxPtraceTask and
    	Proc with LinuxPtraceProc.
    	* LinuxPtraceProcState.java: Ditto.
    	* LinuxPtraceProc.java: Update.
    	* LinuxPtraceTask.java: Update.

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

Summary of changes:
 frysk-core/frysk/proc/ChangeLog                    |   39 ++
 frysk-core/frysk/proc/Proc.java                    |   31 --
 frysk-core/frysk/proc/Task.java                    |  435 +-------------------
 frysk-core/frysk/proc/TaskObservable.java          |    9 +-
 frysk-core/frysk/proc/dead/ChangeLog               |   11 +
 frysk-core/frysk/proc/dead/DeadProc.java           |   47 ---
 frysk-core/frysk/proc/dead/DeadTask.java           |   43 --
 frysk-core/frysk/proc/dummy/ChangeLog              |   11 +
 frysk-core/frysk/proc/dummy/DummyProc.java         |   12 -
 frysk-core/frysk/proc/dummy/DummyTask.java         |   15 -
 frysk-core/frysk/proc/live/ChangeLog               |   42 ++-
 frysk-core/frysk/proc/live/LinuxPtraceHost.java    |    2 +-
 frysk-core/frysk/proc/live/LinuxPtraceProc.java    |   35 +-
 .../frysk/proc/live/LinuxPtraceProcState.java      |   83 ++--
 frysk-core/frysk/proc/live/LinuxPtraceTask.java    |  300 +++++++++++++-
 .../frysk/proc/live/LinuxPtraceTaskState.java      |  303 +++++++-------
 16 files changed, 605 insertions(+), 813 deletions(-)

First 500 lines of diff:
diff --git a/frysk-core/frysk/proc/ChangeLog b/frysk-core/frysk/proc/ChangeLog
index 5842faa..45d48bb 100644
--- a/frysk-core/frysk/proc/ChangeLog
+++ b/frysk-core/frysk/proc/ChangeLog
@@ -1,5 +1,44 @@
 2008-01-04  Andrew Cagney  <cagney@redhat.com>
 
+	* TaskObservable.java: Make public.
+	* Task.java (terminatingObservers): Delete.
+	(notifyTerminating(boolean,int)): Delete.
+	(terminatedObservers, notifyTerminated(boolean,int)): Delete.
+	(execedObservers, notifyExeced()): Delete.
+	(attachedObservers, notifyAttached()): Delete.
+	(signaledObservers, notifySignaled(int)): Delete.
+	(syscallObservers, notifySyscallEnter(), notifySyscallExit): Delete.
+	(clonedObservers, notifyClonedParent(Task))
+	(notifyClonedOfspring()): Delete.
+	(forkedObservers, notifyForkedParent(Task))
+	(notifyForkedOfspring()): Delete.
+	(instructionObservers, notifyInstruction()): Delete.
+	(codeObservers, notifyCodeBreakpoint()): New.
+
+	* Task.java (removeObservers()): Delete.
+
+	* Proc.java (performRemoval()): Delete.
+	(performTaskAttachCompleted(Task)): Delete.
+	(performTaskDetachCompleted(Task)): Delete.
+	(performTaskDetachCompleted(Task,Task)): Delete.
+
+	* Task.java (sendContinue(int)): Delete.
+	(sendSyscallContinue(int)): Delete.
+	(sendStepInstruction(int)): Delete.
+	(sendStop()): Delete.
+	(sendSetOptions()): Delete.
+	(sendAttach()): Delete.
+	(sendDetach()): Delete.
+	(startTracingSyscalls()): Delete.
+	(stopTracingSyscalls()): Delete.
+	
+	* Task.java (performRemoval()): Delete.
+	(performContinue()): Delete.
+	(performAttach(boolean)): Delete.
+	(performDetach(boolean)): Delete.
+	(handleUnblock(TaskObserver)): Delete.
+	* TaskObservation.java: Update.
+
 	* Host.java (getSelf()): Make abstract.
 	(sendrecSelf()): Delete.
 	(self): Delete.
diff --git a/frysk-core/frysk/proc/Proc.java b/frysk-core/frysk/proc/Proc.java
index ddc5cf0..7428700 100644
--- a/frysk-core/frysk/proc/Proc.java
+++ b/frysk-core/frysk/proc/Proc.java
@@ -336,37 +336,6 @@ public abstract class Proc {
      */
     public abstract void requestRefresh();
 
-    /**
-     * (Internal) Tell the process that is no longer listed in the
-     * system table remove itself.
-     *
-     * XXX: This should not be public.
-     */
-    public abstract void performRemoval();
-
-    /**
-     *(Internal) Tell the process that the corresponding task has
-     * completed its attach.
-     *
-     * XXX: Should not be public.
-     */
-    public abstract void performTaskAttachCompleted(Task theTask);
-
-    /**
-     * (Internal) Tell the process that the corresponding task has
-     * completed its detach.
-     *
-     * XXX: Should not be public.
-     */
-    public abstract void performTaskDetachCompleted(Task theTask);
-
-    /**
-     * (Internal) Tell the process that the corresponding task has
-     * completed its detach.
-     */
-    protected abstract void performTaskDetachCompleted(Task theTask,
-						       Task theClone);
-
     protected abstract void performDetach();
 
     /**
diff --git a/frysk-core/frysk/proc/Task.java b/frysk-core/frysk/proc/Task.java
index 56ff8b4..359f248 100644
--- a/frysk-core/frysk/proc/Task.java
+++ b/frysk-core/frysk/proc/Task.java
@@ -39,15 +39,13 @@
 
 package frysk.proc;
 
-import frysk.syscall.Syscall;
+import frysk.proc.TaskObserver.Terminating;
 import frysk.syscall.SyscallTable;
 import frysk.syscall.SyscallTableFactory;
 import java.util.LinkedList;
 import inua.eio.ByteBuffer;
 import java.util.Set;
 import java.util.HashSet;
-import java.util.Collection;
-import java.util.Iterator;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 import java.util.Observer;
@@ -63,7 +61,10 @@ public abstract class Task {
      * If known, as a result of tracing clone or fork, the task that
      * created this task.
      */
-    final Task creator;
+    private final Task creator;
+    public Task getCreator() {
+	return creator;
+    }
 
     /**
      * Return the task's corresponding TaskId.
@@ -191,55 +192,6 @@ public abstract class Task {
 	this(new TaskId(proc.getPid()), proc, proc.creator);
     }
 
-    // Send operation to corresponding underlying [kernel] task.  The
-    // continue, syscall and step methods should sig_send and set/reset
-    // step_send to indicate that last reques tot the Task was a single
-    // step.
-
-    /** XXX: Should not be public.  */
-    public void sendContinue(int sig) {
-	throw new RuntimeException("unimplemented");
-    }
-    /** XXX: Should not be public.  */
-    public void sendSyscallContinue(int sig) {
-	throw new RuntimeException("unimplemented");
-    }
-    /** XXX: Should not be public.  */
-    public void sendStepInstruction(int sig) {
-	throw new RuntimeException("unimplemented");
-    }
-    /** XXX: Should not be public.  */
-    public void sendStop() {
-	throw new RuntimeException("unimplemented");
-    }
-    /** XXX: Should not be public.  */
-    public void sendSetOptions() {
-	throw new RuntimeException("unimplemented");
-    }
-    /** XXX: Should not be public.  */
-    public void sendAttach() {
-	throw new RuntimeException("unimplemented");
-    }
-    /** XXX: Should not be public.  */
-    public void sendDetach(int sig) {
-	throw new RuntimeException("unimplemented");
-    }
-    /**
-     * Turns on systemcall entry and exit tracing XXX: Should not be
-     * public.
-     */
-    public void startTracingSyscalls() {
-	throw new RuntimeException("unimplemented");
-    }
-
-    /**
-     * Turns off systemcall entry and exit tracing XXX: Should not be
-     * public.
-     */
-    public void stopTracingSyscalls() {
-	throw new RuntimeException("unimplemented");
-    }
-
     protected LinkedList queuedEvents = new LinkedList();
 
     /**
@@ -252,65 +204,6 @@ public abstract class Task {
      */
     protected abstract void handleDeleteObservation(TaskObservation observation);
 
-    /**
-     * Unblock the specified observer.
-     */
-    public abstract void handleUnblock(TaskObserver observation);
-
-    /**
-     * Requesting that the task go (or resume execution).
-     */
-    public abstract void performContinue();
-
-    /**
-     * (Internal) Tell the task to remove itself (it is no longer
-     * listed in the system process table and, presumably, has
-     * exited).
-     *
-     * XXX: Should not be public.
-     */
-    public abstract void performRemoval();
-
-    /**
-     * (Internal) Tell the task to attach itself (if it isn't
-     * already). Notify the containing process once the operation has
-     * been completed. The task is left in the stopped state.
-     *
-     * XXX: Should not be public.
-     */
-    public abstract void performAttach();
-
-    /**
-     * (Internal) Tell the task to detach itself (if it isn't
-     * already). Notify the containing process once the operation has
-     * been processed; the task is allowed to run free.
-     * @param shouldRemoveObservers whether to remove the observers as well.
-     */
-    public abstract void performDetach(boolean shouldRemoveObservers);
-
-    /**
-     *  (Internal) Request that all observers from this task be
-     *  removed.  Warning, should also be removed from the proc's
-     *  observations.
-     *
-     * XXX: Should not be public.
-     */
-    public void removeObservers() {
-	logger.log(Level.FINE, "{0} abandon", this);	 
-		
-	attachedObservers.removeAllObservers();
-	clonedObservers.removeAllObservers();
-	forkedObservers.removeAllObservers();
-	terminatedObservers.removeAllObservers();
-	terminatingObservers.removeAllObservers();
-	execedObservers.removeAllObservers();
-	syscallObservers.removeAllObservers();
-	signaledObservers.removeAllObservers();
-	instructionObservers.removeAllObservers();
-	blockers.clear();
-	pendingObservations.clear();
-    }
-  
     public class TaskEventObservable extends java.util.Observable {
 	protected void notify(Object o) {
 	    setChanged();
@@ -351,328 +244,77 @@ public abstract class Task {
     public abstract void requestUnblock(final TaskObserver observerArg);
 
     /**
-     * Set of Cloned observers.
-     *
-     * XXX: Should not be public.
-     */
-    public final TaskObservable clonedObservers = new TaskObservable(this);
-
-    /**
      * Add a TaskObserver.Cloned observer.
      */
     public abstract void requestAddClonedObserver(TaskObserver.Cloned o);
-
     /**
      * Delete a TaskObserver.Cloned observer.
      */
     public abstract void requestDeleteClonedObserver(TaskObserver.Cloned o);
 
     /**
-     * Notify all cloned observers that this task cloned. Return the
-     * number of blocking observers.
-     *
-     * XXX: Should not be public.
-     */
-    public int notifyClonedParent(Task offspring) {
-	for (Iterator i = clonedObservers.iterator(); i.hasNext();) {
-	    TaskObserver.Cloned observer = (TaskObserver.Cloned) i.next();
-	    if (observer.updateClonedParent(this, offspring) == Action.BLOCK) {
-		blockers.add(observer);
-	    }
-	}
-	return blockers.size();
-    }
-
-    /**
-     * Notify all cloned observers that this task cloned. Return the
-     * number of blocking observers.
-     *
-     * XXX: Should not be public.
-     */
-    public int notifyClonedOffspring() {
-	logger.log(Level.FINE, "{0} notifyClonedOffspring\n", this);
-	for (Iterator i = creator.clonedObservers.iterator(); i.hasNext();) {
-	    TaskObserver.Cloned observer = (TaskObserver.Cloned) i.next();
-	    if (observer.updateClonedOffspring(creator, this) == Action.BLOCK) {
-		blockers.add(observer);
-	    }
-	}
-	return blockers.size();
-    }
-
-    /**
-     * Set of Attached observers.
-     *
-     * XXX: Should not be public.
-     */
-    public final TaskObservable attachedObservers = new TaskObservable(this);
-
-    /**
      * Add a TaskObserver.Attached observer.
      */
     public abstract void requestAddAttachedObserver(TaskObserver.Attached o);
-
     /**
      * Delete a TaskObserver.Attached observer.
      */
     public abstract void requestDeleteAttachedObserver(TaskObserver.Attached o);
 
     /**
-     * Notify all Attached observers that this task attached. Return
-     * the number of blocking observers.
-     *
-     * XXX: Should not be public.
-     */
-    public int notifyAttached() {
-	logger.log(Level.FINE, "{0} notifyAttached\n", this);
-	//Fill isa on attach.
-	getIsa();
-	for (Iterator i = attachedObservers.iterator(); i.hasNext();) {
-	    TaskObserver.Attached observer = (TaskObserver.Attached) i.next();
-	    if (observer.updateAttached(this) == Action.BLOCK)
-		blockers.add(observer);
-	}
-	return blockers.size();
-    }
-
-    /**
-     * Set of Forked observers.
-     *
-     * XXX: Should not be public.
-     */
-    public final TaskObservable forkedObservers = new TaskObservable(this);
-
-    /**
      * Add a TaskObserver.Forked observer.
      */
     public abstract void requestAddForkedObserver(TaskObserver.Forked o);
-
     /**
      * Delete a TaskObserver.Forked observer.
      */
     public abstract void requestDeleteForkedObserver(TaskObserver.Forked o);
 
     /**
-     * Notify all Forked observers that this task forked. Return the
-     * number of blocking observers.
-     *
-     * XXX: Should not be public.
-     */
-    public int notifyForkedParent(Task offspring) {
-	for (Iterator i = forkedObservers.iterator(); i.hasNext();) {
-	    TaskObserver.Forked observer = (TaskObserver.Forked) i.next();
-	    if (observer.updateForkedParent(this, offspring) == Action.BLOCK) {
-		blockers.add(observer);
-	    }
-	}
-	return blockers.size();
-    }
-
-    /**
-     * Notify all Forked observers that this task's new offspring,
-     * created using fork, is sitting at the first instruction.
-     *
-     * XXX: Should not be public.
-     */
-    public int notifyForkedOffspring() {
-	for (Iterator i = creator.forkedObservers.iterator(); i.hasNext();) {
-	    TaskObserver.Forked observer = (TaskObserver.Forked) i.next();
-	    if (observer.updateForkedOffspring(creator, this) == Action.BLOCK) {
-		blockers.add(observer);
-	    }
-	}
-	return blockers.size();
-    }
-
-    /**
-     * Set of Terminated observers.
-     *
-     * XXX: Should not be public.
-     */
-    public final TaskObservable terminatedObservers = new TaskObservable(this);
-
-    /**
      * Add a TaskObserver.Terminated observer.
      */
     public abstract void requestAddTerminatedObserver(TaskObserver.Terminated o);
-
     /**
      * Delete a TaskObserver.Terminated observer.
      */
     public abstract void requestDeleteTerminatedObserver(TaskObserver.Terminated o);
 
     /**
-     * Notify all Terminated observers, of this Task's demise. Return
-     * the number of blocking observers.(Does this make any sense?)
-     *
-     * XXX: Should not be public.
-     */
-    public int notifyTerminated(boolean signal, int value) {
-	logger.log(Level.FINE, "{0} notifyTerminated\n", this);
-	for (Iterator i = terminatedObservers.iterator(); i.hasNext();) {
-	    TaskObserver.Terminated observer = (TaskObserver.Terminated) i.next();
-	    if (observer.updateTerminated(this, signal, value) == Action.BLOCK) {
-		logger.log(Level.FINER,
-			   "{0} notifyTerminated adding {1} to blockers\n",
-			   new Object[] { this, observer });
-		blockers.add(observer);
-	    }
-	}
-	return blockers.size();
-    }
-
-    /**
-     * Set of Terminating observers.
-     *
-     * XXX: Should not be public.
-     */
-    public final TaskObservable terminatingObservers = new TaskObservable(this);
-
-    /**
-     * Add TaskObserver.Terminating to the TaskObserver pool.
-     */
-    public abstract void requestAddTerminatingObserver(TaskObserver.Terminating o);
-
-    /**
-     * Delete TaskObserver.Terminating.
-     */
-    public abstract void requestDeleteTerminatingObserver(TaskObserver.Terminating o);
-
-    /**
-     * Notify all Terminating observers, of this Task's demise. Return
-     * the number of blocking observers.
-     *
-     * XXX: Should not be public.
+     * Add the Terminating observer to the TaskObserver pool.
      */
-    public int notifyTerminating(boolean signal, int value) {
-	for (Iterator i = terminatingObservers.iterator(); i.hasNext();) {
-	    TaskObserver.Terminating observer = (TaskObserver.Terminating) i.next();
-	    if (observer.updateTerminating(this, signal, value) == Action.BLOCK)
-		blockers.add(observer);
-	}
-	return blockers.size();
-    }
-
+    public abstract void requestAddTerminatingObserver(Terminating o);
     /**
-     * Set of Execed observers.
-     *
-     * XXX: Should not be public.
+     * Delete the Terminating observer.
      */
-    public final TaskObservable execedObservers = new TaskObservable(this);
+    public abstract void requestDeleteTerminatingObserver(Terminating o);
 
     /**
      * Add TaskObserver.Execed to the TaskObserver pool.
      */
     public abstract void requestAddExecedObserver(TaskObserver.Execed o);
-
     /**
      * Delete TaskObserver.Execed.
      */
     public abstract void requestDeleteExecedObserver(TaskObserver.Execed o);
 
     /**
-     * Notify all Execed observers, of this Task's demise. Return the
-     * number of blocking observers.
-     *
-     * XXX: Should not be public.
-     */
-    public int notifyExeced() {
-	//Flush the isa in case it has changed between exec's.
-	clearIsa();
-	//XXX: When should the isa be rebuilt?
-	for (Iterator i = execedObservers.iterator(); i.hasNext();) {
-	    TaskObserver.Execed observer = (TaskObserver.Execed) i.next();
-	    if (observer.updateExeced(this) == Action.BLOCK)
-		blockers.add(observer);
-	}
-	return blockers.size();
-    }
-
-    /**
-     * Set of Syscall observers. Checked in TaskState.
-     *
-     * XXX: Should not be public.
-     */
-    public final TaskObservable syscallObservers = new TaskObservable(this);
-
-    /**
      * Add TaskObserver.Syscalls to the TaskObserver pool.


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]