Pārlūkot izejas kodu

Cleaning up thread locals when counters/stacks hit zero

tags/AS_BETA_JAVA8_CREATED
Andy Clement pirms 11 gadiem
vecāks
revīzija
dd41751ab2

+ 3
- 0
runtime/src/org/aspectj/runtime/internal/CFlowCounter.java Parādīt failu



public void dec() { public void dec() {
flowHeightHandler.dec(); flowHeightHandler.dec();
if (!flowHeightHandler.isNotZero()) {
flowHeightHandler.removeThreadCounter();
}
} }
public boolean isValid() { public boolean isValid() {

+ 5
- 1
runtime/src/org/aspectj/runtime/internal/CFlowStack.java Parādīt failu

} }


public void pop() { public void pop() {
getThreadStack().pop();
Stack s = getThreadStack();
s.pop();
if (s.isEmpty()) {
stackProxy.removeThreadStack();
}
} }


public Object peek() { public Object peek() {

+ 1
- 0
runtime/src/org/aspectj/runtime/internal/cflowstack/ThreadCounter.java Parādīt failu

public void inc(); public void inc();
public void dec(); public void dec();
public boolean isNotZero(); public boolean isNotZero();
public void removeThreadCounter();
} }

+ 4
- 0
runtime/src/org/aspectj/runtime/internal/cflowstack/ThreadCounterImpl11.java Parādīt failu

return getThreadCounter().value!=0; return getThreadCounter().value!=0;
} }


public void removeThreadCounter() {
// TODO
}

} }

+ 1
- 0
runtime/src/org/aspectj/runtime/internal/cflowstack/ThreadStack.java Parādīt failu

public interface ThreadStack { public interface ThreadStack {


public Stack getThreadStack(); public Stack getThreadStack();
public void removeThreadStack();


} }

+ 7
- 0
runtime/src/org/aspectj/runtime/internal/cflowstack/ThreadStackFactoryImpl.java Parādīt failu

public Stack getThreadStack() { public Stack getThreadStack() {
return (Stack)get(); return (Stack)get();
} }
public void removeThreadStack() {
this.remove();
}
} }


public ThreadStack getNewThreadStack() { public ThreadStack getNewThreadStack() {
return (Counter)get(); return (Counter)get();
} }
public void removeThreadCounter() {
this.remove();
}
public void inc() { getThreadCounter().value++; } public void inc() { getThreadCounter().value++; }
public void dec() { getThreadCounter().value--; } public void dec() { getThreadCounter().value--; }
public boolean isNotZero() { return getThreadCounter().value!= 0; } public boolean isNotZero() { return getThreadCounter().value!= 0; }

+ 4
- 0
runtime/src/org/aspectj/runtime/internal/cflowstack/ThreadStackImpl11.java Parādīt failu

return cached_stack; return cached_stack;
} }


public void removeThreadStack() {
// TODO
}

} }

Notiek ielāde…
Atcelt
Saglabāt