From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13103 invoked by alias); 17 Jan 2008 00:58:33 -0000 Received: (qmail 12919 invoked by uid 367); 17 Jan 2008 00:58:27 -0000 Date: Thu, 17 Jan 2008 00:58:00 -0000 Message-ID: <20080117005827.12859.qmail@sourceware.org> From: cagney@sourceware.org To: frysk-cvs@sourceware.org Subject: [SCM] master: Clearly identify code using the Task.blockers internal variable. X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: bb7902b13a9edce97875a882a4ae5d0bb2b2e443 X-Git-Newrev: 10bf4ead4d7cc9e4299319c9507e1db8da9dbf7b Mailing-List: contact frysk-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: frysk-cvs-owner@sourceware.org Reply-To: frysk@sourceware.org X-SW-Source: 2008-q1/txt/msg00069.txt.bz2 The branch, master has been updated via 10bf4ead4d7cc9e4299319c9507e1db8da9dbf7b (commit) from bb7902b13a9edce97875a882a4ae5d0bb2b2e443 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 10bf4ead4d7cc9e4299319c9507e1db8da9dbf7b Author: Andrew Cagney Date: Wed Jan 16 19:55:37 2008 -0500 Clearly identify code using the Task.blockers internal variable. frysk-core/frysk/ftrace/ChangeLog 2008-01-16 Andrew Cagney * Ltrace.java: Update; Task.blockers made private; use workaround. * MappingGuard.java: Ditto. 2008-01-16 Andrew Cagney * TaskData.java: Task.getBlockers() make private; use workaround. frysk-core/frysk/proc/ChangeLog 2008-01-16 Andrew Cagney * Task.java (blockers): Delete. (getBlockers()): Delete. (bogusUseOfInternalBlockersVariableFIXME()): New. * TestTaskObserverBlocked.java: Move to frysk.proc.live. frysk-core/frysk/proc/live/ChangeLog 2008-01-16 Andrew Cagney * LinuxPtraceTask.java (blockers): New. (bogusUseOfInternalBlockersVariableFIXME()): New. * LinuxPtraceProc.java: Update. * TestTaskObserverBlocked.java: Move here from frysk.proc. frysk-core/frysk/rt/ChangeLog 2008-01-16 Andrew Cagney * UpdatingDisplayValue.java: Task.getBlockers() make private; use work-around. * TestUpdatingDisplayValue.java: Ditto. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/ftrace/ChangeLog | 5 ++++ frysk-core/frysk/ftrace/Ltrace.java | 2 +- frysk-core/frysk/ftrace/MappingGuard.java | 2 +- frysk-core/frysk/hpd/ChangeLog | 8 +++++- frysk-core/frysk/hpd/TaskData.java | 8 +++++- frysk-core/frysk/proc/ChangeLog | 5 ++++ frysk-core/frysk/proc/Task.java | 14 ++---------- frysk-core/frysk/proc/live/ChangeLog | 5 ++++ frysk-core/frysk/proc/live/LinuxPtraceProc.java | 2 +- frysk-core/frysk/proc/live/LinuxPtraceTask.java | 11 ++++++++++ .../proc/{ => live}/TestTaskObserverBlocked.java | 21 +++++++++++-------- frysk-core/frysk/rt/ChangeLog | 6 +++++ frysk-core/frysk/rt/TestUpdatingDisplayValue.java | 8 ++++-- frysk-core/frysk/rt/UpdatingDisplayValue.java | 8 +++--- 14 files changed, 71 insertions(+), 34 deletions(-) rename frysk-core/frysk/proc/{ => live}/TestTaskObserverBlocked.java (97%) First 500 lines of diff: diff --git a/frysk-core/frysk/ftrace/ChangeLog b/frysk-core/frysk/ftrace/ChangeLog index dadd760..28a2af3 100644 --- a/frysk-core/frysk/ftrace/ChangeLog +++ b/frysk-core/frysk/ftrace/ChangeLog @@ -1,3 +1,8 @@ +2008-01-16 Andrew Cagney + + * Ltrace.java: Update; Task.blockers made private; use workaround. + * MappingGuard.java: Ditto. + 2008-01-16 Mark Wielaard * TestLtrace.java (DummyFunctionObserver): Made static. diff --git a/frysk-core/frysk/ftrace/Ltrace.java b/frysk-core/frysk/ftrace/Ltrace.java index ee836da..4030805 100644 --- a/frysk-core/frysk/ftrace/Ltrace.java +++ b/frysk-core/frysk/ftrace/Ltrace.java @@ -103,7 +103,7 @@ public class Ltrace for (Iterator it = observers.iterator(); it.hasNext();) { FunctionObserver fo = (FunctionObserver)it.next(); if (oit.action(fo) == Action.BLOCK) - this.task.blockers.add(fo); + this.task.bogusUseOfInternalBlockersVariableFIXME().add(fo); } } diff --git a/frysk-core/frysk/ftrace/MappingGuard.java b/frysk-core/frysk/ftrace/MappingGuard.java index 5b14999..6638df3 100644 --- a/frysk-core/frysk/ftrace/MappingGuard.java +++ b/frysk-core/frysk/ftrace/MappingGuard.java @@ -157,7 +157,7 @@ class MappingGuard MappingObserver ob = (MappingObserver)entry.getKey(); for (int j = 0; j < v; ++j) if (oit.action(ob) == Action.BLOCK) - task.blockers.add(ob); + task.bogusUseOfInternalBlockersVariableFIXME().add(ob); } } diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index abe5e64..0dd9104 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,9 +1,13 @@ -2008-01-15 Andrew Cagney +2008-01-16 Andrew Cagney - * TestSysRoot.java (testHaveSysRoot): Test sysroot is now in pkgdatadir. + * TaskData.java: Task.getBlockers() make private; use workaround. 2008-01-15 Stan Cox + * TestSysRoot.java (testHaveSysRoot): Test sysroot is now in pkgdatadir. + +2008-01-15 Andrew Cagney + * TestSysRoot.java: Mark as unresolved, bug 5619. 2008-01-15 Rick Moseley diff --git a/frysk-core/frysk/hpd/TaskData.java b/frysk-core/frysk/hpd/TaskData.java index 8b5569b..5f93cf4 100644 --- a/frysk-core/frysk/hpd/TaskData.java +++ b/frysk-core/frysk/hpd/TaskData.java @@ -85,8 +85,12 @@ class TaskData toPrint(printWriter, false); } - // XXX Better way to do this? + /** + * XXX: The way to determine if a task is stopped is via the + * stepping engine which determines when, from the HPD's + * point-of-view, a task can be considered stopped. + */ public boolean isStopped() { - return task.getBlockers().length != 0; + return task.bogusUseOfInternalBlockersVariableFIXME().size() != 0; } } diff --git a/frysk-core/frysk/proc/ChangeLog b/frysk-core/frysk/proc/ChangeLog index 1cd3d7a..4d45985 100644 --- a/frysk-core/frysk/proc/ChangeLog +++ b/frysk-core/frysk/proc/ChangeLog @@ -1,5 +1,10 @@ 2008-01-16 Andrew Cagney + * Task.java (blockers): Delete. + (getBlockers()): Delete. + (bogusUseOfInternalBlockersVariableFIXME()): New. + * TestTaskObserverBlocked.java: Move to frysk.proc.live. + * Task.java (sendrecRegisterBanks()): Delete. (getRegisterBanks()): Make abstract. diff --git a/frysk-core/frysk/proc/Task.java b/frysk-core/frysk/proc/Task.java index 30278d5..6e65278 100644 --- a/frysk-core/frysk/proc/Task.java +++ b/frysk-core/frysk/proc/Task.java @@ -168,18 +168,10 @@ public abstract class Task { } /** - * Set of interfaces currently blocking this task. - * - * XXX: Should not be public. - */ - public Set blockers = new HashSet(); - - /** - * Return the current set of blockers as an array. Useful when - * debugging. + * XXX: Code using this needs a re-think. */ - public TaskObserver[] getBlockers() { - return (TaskObserver[]) blockers.toArray(new TaskObserver[0]); + public Set bogusUseOfInternalBlockersVariableFIXME() { + return new HashSet(); } /** diff --git a/frysk-core/frysk/proc/live/ChangeLog b/frysk-core/frysk/proc/live/ChangeLog index 32e979f..4118d0a 100644 --- a/frysk-core/frysk/proc/live/ChangeLog +++ b/frysk-core/frysk/proc/live/ChangeLog @@ -1,5 +1,10 @@ 2008-01-16 Andrew Cagney + * LinuxPtraceTask.java (blockers): New. + (bogusUseOfInternalBlockersVariableFIXME()): New. + * LinuxPtraceProc.java: Update. + * TestTaskObserverBlocked.java: Move here from frysk.proc. + * LinuxPtraceTask.java (getRegisterBanks()): Replace sendrecRegisterBanks(). diff --git a/frysk-core/frysk/proc/live/LinuxPtraceProc.java b/frysk-core/frysk/proc/live/LinuxPtraceProc.java index 032ca03..c6662d4 100644 --- a/frysk-core/frysk/proc/live/LinuxPtraceProc.java +++ b/frysk-core/frysk/proc/live/LinuxPtraceProc.java @@ -636,7 +636,7 @@ public class LinuxPtraceProc extends LiveProc { super.add(); TaskObserver.Instruction i = (TaskObserver.Instruction) observer; if (i.updateExecuted(task) == Action.BLOCK) - task.blockers.add(observer); + ((LinuxPtraceTask)task).blockers.add(observer); } }; Manager.eventLoop.add(to); diff --git a/frysk-core/frysk/proc/live/LinuxPtraceTask.java b/frysk-core/frysk/proc/live/LinuxPtraceTask.java index a65aa9d..99be7e6 100644 --- a/frysk-core/frysk/proc/live/LinuxPtraceTask.java +++ b/frysk-core/frysk/proc/live/LinuxPtraceTask.java @@ -39,6 +39,8 @@ package frysk.proc.live; +import java.util.HashSet; +import java.util.Set; import java.util.LinkedList; import frysk.isa.Register; import frysk.isa.RegistersFactory; @@ -511,6 +513,15 @@ public class LinuxPtraceTask extends LiveTask { }); } + /** + * Set of interfaces currently blocking this task. + * + * Package-private. + */ + final Set blockers = new HashSet(); + public Set bogusUseOfInternalBlockersVariableFIXME() { + return blockers; + } /** * Set of Cloned observers. diff --git a/frysk-core/frysk/proc/TestTaskObserverBlocked.java b/frysk-core/frysk/proc/live/TestTaskObserverBlocked.java similarity index 97% rename from frysk-core/frysk/proc/TestTaskObserverBlocked.java rename to frysk-core/frysk/proc/live/TestTaskObserverBlocked.java index f22f8b2..289bf50 100644 --- a/frysk-core/frysk/proc/TestTaskObserverBlocked.java +++ b/frysk-core/frysk/proc/live/TestTaskObserverBlocked.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 @@ -38,7 +38,7 @@ // exception. -package frysk.proc; +package frysk.proc.live; import java.util.logging.Level; import frysk.testbed.SignalWaiter; @@ -50,6 +50,10 @@ import frysk.testbed.TaskObserverBase; import frysk.testbed.DaemonBlockedAtEntry; import frysk.testbed.Offspring; import frysk.testbed.SlaveOffspring; +import frysk.proc.TaskObserver; +import frysk.proc.Task; +import frysk.proc.Action; +import frysk.proc.Manager; /** * Check the behavior of an observer that blocks a Task's progress. In @@ -96,13 +100,12 @@ public class TestTaskObserverBlocked assertEquals("blocked task count", 1, tasks.length); // That the Task's blocker set only contains this task. - for (int i = 0; i < tasks.length; i++) - { - Task task = tasks[i]; - TaskObserver[] blockers = task.getBlockers(); - assertEquals("blockers length", 1, blockers.length); - assertSame("blocker and blockAttached", blockAttached, blockers[0]); - } + for (int i = 0; i < tasks.length; i++) { + LinuxPtraceTask task = (LinuxPtraceTask) tasks[i]; + assertEquals("blockers length", 1, task.blockers.size()); + assertSame("blocker and blockAttached", blockAttached, + task.blockers.toArray()[0]); + } } /** diff --git a/frysk-core/frysk/rt/ChangeLog b/frysk-core/frysk/rt/ChangeLog index dd2942c..125439c 100644 --- a/frysk-core/frysk/rt/ChangeLog +++ b/frysk-core/frysk/rt/ChangeLog @@ -1,3 +1,9 @@ +2008-01-16 Andrew Cagney + + * UpdatingDisplayValue.java: Task.getBlockers() make private; use + work-around. + * TestUpdatingDisplayValue.java: Ditto. + 2008-01-11 Tim Moore * FunctionBreakpoint.java (getBreakpointRawAddresses): Filter out diff --git a/frysk-core/frysk/rt/TestUpdatingDisplayValue.java b/frysk-core/frysk/rt/TestUpdatingDisplayValue.java index 76ceb7f..e0e5eaf 100644 --- a/frysk-core/frysk/rt/TestUpdatingDisplayValue.java +++ b/frysk-core/frysk/rt/TestUpdatingDisplayValue.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 @@ -524,14 +524,16 @@ public class TestUpdatingDisplayValue extends TestLib public void updateAvailableTaskStopped (UpdatingDisplayValue value) { assertNotNull("DisplayValue passed to the observer", value); - assertFalse("Task should have blockers", myTask.getBlockers().length == 0); + assertFalse("Task should have blockers", + myTask.bogusUseOfInternalBlockersVariableFIXME().size() == 0); hitStopped = true; } public void updateUnavailbeResumedExecution (UpdatingDisplayValue value) { assertNotNull("DisplayValue passed to the observer", value); - assertTrue("Task should not be blocked", myTask.getBlockers().length == 0); + assertTrue("Task should not be blocked", + myTask.bogusUseOfInternalBlockersVariableFIXME().size() == 0); hitResumed = true; } diff --git a/frysk-core/frysk/rt/UpdatingDisplayValue.java b/frysk-core/frysk/rt/UpdatingDisplayValue.java index 50b43a4..593b14e 100644 --- a/frysk-core/frysk/rt/UpdatingDisplayValue.java +++ b/frysk-core/frysk/rt/UpdatingDisplayValue.java @@ -113,11 +113,11 @@ public class UpdatingDisplayValue extends DisplayValue { */ public void refresh() { // If the task isn't running, notify our observers to that extent - if (myTask.getBlockers().length == 0) { + if (myTask.bogusUseOfInternalBlockersVariableFIXME().size() == 0) { /* - * TODO: right now we don't get notified when the task is - * resumed, should we? - */ + * TODO: right now we don't get notified when the task is + * resumed, should we? + */ // notifyObserversUnavailableTaskResumed(); return; } hooks/post-receive -- frysk system monitor/debugger