rpms/frysk/devel frysk-0.4-lostfork.patch, NONE, 1.1 frysk.spec, 1.161, 1.162
cagney
cagney at fedoraproject.org
Tue Mar 30 15:13:09 UTC 2010
Author: cagney
Update of /cvs/pkgs/rpms/frysk/devel
In directory cvs01.phx2.fedoraproject.org:/tmp/cvs-serv24349/devel
Modified Files:
frysk.spec
Added Files:
frysk-0.4-lostfork.patch
Log Message:
* Tue Mar 30 2010 Andrew Cagney <cagney [at] fedoraproject.org> - 0.4-24
- for fcatch et.al. don't exit when outstanding child events -
frysk-0.4-lostfork.patch
frysk-0.4-lostfork.patch:
ProcRunUtil.java | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
--- NEW FILE frysk-0.4-lostfork.patch ---
diff -up frysk-0.4/frysk-core/frysk/util/ProcRunUtil.java.lostfork frysk-0.4/frysk-core/frysk/util/ProcRunUtil.java
--- frysk-0.4/frysk-core/frysk/util/ProcRunUtil.java.lostfork 2010-03-30 09:44:35.000000000 -0400
+++ frysk-0.4/frysk-core/frysk/util/ProcRunUtil.java 2010-03-30 10:30:47.000000000 -0400
@@ -41,6 +41,7 @@ package frysk.util;
import java.util.HashSet;
+import frysk.rsl.Log;
import frysk.proc.Action;
import frysk.proc.Manager;
import frysk.proc.Proc;
@@ -58,8 +59,13 @@ import gnu.classpath.tools.getopt.Option
* Utilities must implement {@link ProcRunObserver} to use.
*/
public class ProcRunUtil {
+ private static final Log fine = Log.fine(ProcRunUtil.class);
private final HashSet knownTasks = new HashSet();
+ // A fork triggers two events, one for the parent, and one for the
+ // child (when the child stops). This is the set of tasks for
+ // which the child event has yet to arrive.
+ private final HashSet missingForkedOffspring = new HashSet();
ForkedObserver forkedObserver = new ForkedObserver();
AttachedObserver attachedObserver = new AttachedObserver();
@@ -115,6 +121,8 @@ public class ProcRunUtil {
private void addObservers(Task task) {
if (knownTasks.add(task)) {
+ fine.log(this, "addObservers", task);
+ missingForkedOffspring.remove(task);
task.requestAddClonedObserver(procRunObserver);
task.requestAddExecedObserver(procRunObserver);
task.requestAddForkedObserver(procRunObserver);
@@ -128,11 +136,14 @@ public class ProcRunUtil {
class ForkedObserver implements TaskObserver.Forked {
public Action updateForkedOffspring(Task parent, Task offspring) {
+ fine.log(this, "updateForkedOffspring parent", parent, "offspring", offspring);
addObservers(offspring.getProc());
return Action.BLOCK;
}
public Action updateForkedParent(Task parent, Task offspring) {
+ fine.log(this, "updateForkedParent parent", parent, "offspring", offspring);
+ missingForkedOffspring.add(offspring);
return Action.CONTINUE;
}
@@ -198,7 +209,9 @@ public class ProcRunUtil {
public void taskRemoved (Task task)
{
knownTasks.remove(task);
- if(knownTasks.size() == 0){
+ fine.log(this, "taskRemoved", task, "knownTasks", knownTasks.size(),
+ "missingForkedOffspring", missingForkedOffspring.size());
+ if (knownTasks.size() == 0 && missingForkedOffspring.size() == 0){
Manager.eventLoop.requestStop();
}
}
Index: frysk.spec
===================================================================
RCS file: /cvs/pkgs/rpms/frysk/devel/frysk.spec,v
retrieving revision 1.161
retrieving revision 1.162
diff -u -p -r1.161 -r1.162
--- frysk.spec 29 Mar 2010 23:49:21 -0000 1.161
+++ frysk.spec 30 Mar 2010 15:13:09 -0000 1.162
@@ -1,7 +1,7 @@
Summary: Execution analysis and debugging tool-suite.
Name: frysk
Version: 0.4
-Release: 23%{?dist}
+Release: 24%{?dist}
# antlrv2 is Public Domain; antlrv3 is BSD.
# getopt is GPLv2 with exception
@@ -32,6 +32,7 @@ Patch9: frysk-0.4-publictestbedsymtab.p
Patch10: frysk-0.4-noelfmem.patch
Patch11: frysk-0.4-gccjint.patch
Patch12: frysk-0.4-taskstoperr.patch
+Patch13: frysk-0.4-lostfork.patch
Patch100: frysk-0.4-aclocaljavac.patch
@@ -161,6 +162,7 @@ mv frysk-core/frysk/util/ProcStopUtil.ja
%patch10 -p1 -z .noelfmem
%patch11 -p1 -z .gccjint
%patch12 -p1 -z .taskstoperr
+%patch13 -p1 -z .lostfork
%if %{fedora}0 >= 130
%patch100 -p1 -z .aclocaljavac
@@ -352,6 +354,10 @@ rm -rf %{buildroot}
%{_mandir}/man1/frysk.1.gz
%changelog
+* Tue Mar 30 2010 Andrew Cagney <cagney [at] fedoraproject.org> - 0.4-24
+- for fcatch et.al. don't exit when outstanding child events -
+ frysk-0.4-lostfork.patch
+
* Mon Mar 29 2010 Andrew Cagney <cagney [at] fedoraproject.org> - 0.4-23
- for fexe et.al., exit cleanly when an error -
frysk-0.4-taskstoperr.patch
More information about the scm-commits
mailing list