# HG changeset patch # User one # Date 1355212524 -32400 # Node ID d45de183af466164887691b575b9d88204dc3a1d # Parent e8ec5f7f43c0b632a37d840c5bba091b30c5d89e modified TakeRightForkCodeSegment and TakeLeftForkCodeSegment to use ForkStateTakeCodeSegment. diff -r e8ec5f7f43c0 -r d45de183af46 src/alice/test/dpp/codesegment/fork/ForkStateTakeCodeSegment.java --- a/src/alice/test/dpp/codesegment/fork/ForkStateTakeCodeSegment.java Tue Dec 11 16:29:10 2012 +0900 +++ b/src/alice/test/dpp/codesegment/fork/ForkStateTakeCodeSegment.java Tue Dec 11 16:55:24 2012 +0900 @@ -21,6 +21,7 @@ public void run() { Philosophy phil = arg1.asClass(Philosophy.class); Fork fork = arg2.asClass(Fork.class); + System.out.println(phil.getName() + " try to take " + fork.getForkName()); fork.takeFork(phil.getName()); new CheckForkOwnerCodeSegment(phil.getName(), fork.getForkName()); ods.update("local", phil.getName(), phil); diff -r e8ec5f7f43c0 -r d45de183af46 src/alice/test/dpp/codesegment/philosophy/CheckForkOwnerCodeSegment.java --- a/src/alice/test/dpp/codesegment/philosophy/CheckForkOwnerCodeSegment.java Tue Dec 11 16:29:10 2012 +0900 +++ b/src/alice/test/dpp/codesegment/philosophy/CheckForkOwnerCodeSegment.java Tue Dec 11 16:55:24 2012 +0900 @@ -21,6 +21,7 @@ Philosophy phil = arg1.asClass(Philosophy.class); Fork fork = arg2.asClass(Fork.class); if (fork.ownerEquals(phil.getName())) { + phil.checkForkFlag(fork.getForkName()); } new TakeForkManagerCodeSegment(phil.getName()); diff -r e8ec5f7f43c0 -r d45de183af46 src/alice/test/dpp/codesegment/philosophy/TakeForkManagerCodeSegment.java --- a/src/alice/test/dpp/codesegment/philosophy/TakeForkManagerCodeSegment.java Tue Dec 11 16:29:10 2012 +0900 +++ b/src/alice/test/dpp/codesegment/philosophy/TakeForkManagerCodeSegment.java Tue Dec 11 16:55:24 2012 +0900 @@ -19,7 +19,7 @@ if (phil.hasLeftFork && phil.hasRightFork) { phil.setState(Philosophy.State.EAT); new EatCodeSegment(phil.getName()); - } else if (phil.hasLeftFork) { + } else if (phil.hasRightFork) { phil.setState(Philosophy.State.TAKELEFTFORK); new TakeLeftForkCodeSegment(phil.getName(), phil.getLeftFork()); } else { diff -r e8ec5f7f43c0 -r d45de183af46 src/alice/test/dpp/codesegment/philosophy/TakeLeftForkCodeSegment.java --- a/src/alice/test/dpp/codesegment/philosophy/TakeLeftForkCodeSegment.java Tue Dec 11 16:29:10 2012 +0900 +++ b/src/alice/test/dpp/codesegment/philosophy/TakeLeftForkCodeSegment.java Tue Dec 11 16:55:24 2012 +0900 @@ -3,6 +3,7 @@ import alice.codesegment.CodeSegment; import alice.datasegment.CommandType; import alice.datasegment.Receiver; +import alice.test.dpp.codesegment.fork.ForkStateTakeCodeSegment; import alice.test.dpp.datasegment.Fork; import alice.test.dpp.datasegment.Philosophy; @@ -21,12 +22,7 @@ Philosophy phil = arg1.asClass(Philosophy.class); Fork fork = arg2.asClass(Fork.class); System.out.println(phil.getName() + " take left fork."); - if (fork.takeFork(phil.getName())) { - phil.setState(Philosophy.State.EAT); - new EatCodeSegment(phil.getName()); - } else { - new TakeLeftForkCodeSegment(phil.getName(), phil.getLeftFork()); - } + new ForkStateTakeCodeSegment(phil.getName(), phil.getLeftFork()); ods.update("local", phil.getName(), phil); ods.update("local", fork.getForkName(), fork); } diff -r e8ec5f7f43c0 -r d45de183af46 src/alice/test/dpp/codesegment/philosophy/TakeRightForkCodeSegment.java --- a/src/alice/test/dpp/codesegment/philosophy/TakeRightForkCodeSegment.java Tue Dec 11 16:29:10 2012 +0900 +++ b/src/alice/test/dpp/codesegment/philosophy/TakeRightForkCodeSegment.java Tue Dec 11 16:55:24 2012 +0900 @@ -21,14 +21,8 @@ public void run() { Philosophy phil = arg1.asClass(Philosophy.class); Fork fork = arg2.asClass(Fork.class); + System.out.println(phil.getName() + " take right fork."); new ForkStateTakeCodeSegment(phil.getName(), fork.getForkName()); - - if (fork.takeFork(phil.getName())) { - phil.setState(Philosophy.State.TAKELEFTFORK); - new TakeLeftForkCodeSegment(phil.getName(), phil.getLeftFork()); - } else { - new TakeRightForkCodeSegment(phil.getName(), phil.getRightFork()); - } ods.update("local", phil.getName(), phil); ods.update("local", fork.getForkName(), fork); }