Show
Ignore:
Timestamp:
08/25/08 07:18:20 (15 months ago)
Author:
chf
Message:

Some cleanups and refactorings. More to come

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/ProjectFortress/src/com/sun/fortress/interpreter/env/ValueNode.java

    r2649 r2738  
    3232    Transaction writer; 
    3333    ReadSet readers; 
    34      
     34 
     35    public  ValueNode(FValue v, Transaction w, ReadSet r, ValueNode o) { 
     36        old = o; 
     37        value = v; 
     38        writer = w; 
     39        readers = new ReadSet(r); 
     40    } 
     41 
    3542    ValueNode() { 
    3643        old = null; 
    3744        value = null; 
    38         writer = FortressTaskRunner.getTransaction(); 
     45        writer = null; 
    3946        readers = new ReadSet(); 
    4047    } 
    4148 
    42     ValueNode(FValue val) { 
    43         old = null; 
    44         value = val; 
    45         writer = FortressTaskRunner.getTransaction(); 
    46         readers = new ReadSet(); 
    47     } 
    48  
    49     ValueNode(FValue val, Transaction w, ValueNode o) { 
    50         old = o; 
    51         value = val; 
    52         writer = w; 
    53         if (o != null) 
    54             readers = new ReadSet(o.readers); 
    55         else readers = new ReadSet(); 
    56     } 
    57  
    58     ValueNode(FValue val, ReadSet r) { 
    59         old = null; 
    60         value = val; 
    61         readers = new ReadSet(r); 
    62     } 
     49    public static final ValueNode nullValueNode = new ValueNode(); 
    6350 
    6451    public String toString() { 
    65         return "ValueNode[" + value +  ":" + writer + "]" ; 
     52        if (this == nullValueNode) 
     53            return "nullValueNode"; 
     54        else return "ValueNode[" + value +  ":" + writer +  "::" + readers + "]" ; 
    6655    } 
    6756 
     
    8069             
    8170    public void AbortAllReaders() { 
     71        if (this == nullValueNode) 
     72            throw new RuntimeException(Thread.currentThread().getName() + "Trying to abort all the readers of the null value node"); 
     73 
    8274                readers.seal(); 
    8375                for (Transaction r : readers) {