diff options
author | Rich Hickey <richhickey@gmail.com> | 2007-07-31 15:37:51 +0000 |
---|---|---|
committer | Rich Hickey <richhickey@gmail.com> | 2007-07-31 15:37:51 +0000 |
commit | df5c458d0a4ce0fe590f6ce981bd62c19c15558f (patch) | |
tree | 8a5d61f111a9ddcc984a42061de154a0307d2225 /src | |
parent | faa1146288b03e82451943a3f7fd6e927bb1acc7 (diff) |
made IFns Callable
Diffstat (limited to 'src')
-rw-r--r-- | src/jvm/clojure/lang/AFn.java | 5 | ||||
-rw-r--r-- | src/jvm/clojure/lang/IFn.java | 12 | ||||
-rw-r--r-- | src/jvm/clojure/lang/InstanceMemberInvoker.java | 4 | ||||
-rw-r--r-- | src/jvm/clojure/lang/Keyword.java | 4 | ||||
-rw-r--r-- | src/jvm/clojure/lang/LockingTransaction.java | 6 | ||||
-rw-r--r-- | src/jvm/clojure/lang/Ref.java | 4 | ||||
-rw-r--r-- | src/jvm/clojure/lang/StaticMemberInvoker.java | 4 |
7 files changed, 31 insertions, 8 deletions
diff --git a/src/jvm/clojure/lang/AFn.java b/src/jvm/clojure/lang/AFn.java index e38a9916..f2c473d9 100644 --- a/src/jvm/clojure/lang/AFn.java +++ b/src/jvm/clojure/lang/AFn.java @@ -21,6 +21,11 @@ public AFn(IPersistentMap meta){ public AFn(){ } + +public Object call() throws Exception{ + return invoke(); +} + public Object invoke() throws Exception{ return throwArity(); } diff --git a/src/jvm/clojure/lang/IFn.java b/src/jvm/clojure/lang/IFn.java index ab8d108c..353ce96d 100644 --- a/src/jvm/clojure/lang/IFn.java +++ b/src/jvm/clojure/lang/IFn.java @@ -12,7 +12,9 @@ package clojure.lang; -public interface IFn { +import java.util.concurrent.Callable; + +public interface IFn extends Callable{ public Object invoke() throws Exception; @@ -29,7 +31,7 @@ public Object invoke(Object arg1, Object arg2, Object arg3, Object arg4, Object public Object invoke(Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, Object arg6) throws Exception; public Object invoke(Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, Object arg6, Object arg7) - throws Exception; + throws Exception; public Object invoke(Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, Object arg6, Object arg7, Object arg8) throws Exception; @@ -51,7 +53,7 @@ public Object invoke(Object arg1, Object arg2, Object arg3, Object arg4, Object public Object invoke(Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, Object arg6, Object arg7, Object arg8, Object arg9, Object arg10, Object arg11, Object arg12, Object arg13, Object arg14) - throws Exception; + throws Exception; public Object invoke(Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, Object arg6, Object arg7, Object arg8, Object arg9, Object arg10, Object arg11, Object arg12, Object arg13, Object arg14, @@ -76,13 +78,13 @@ public Object invoke(Object arg1, Object arg2, Object arg3, Object arg4, Object public Object invoke(Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, Object arg6, Object arg7, Object arg8, Object arg9, Object arg10, Object arg11, Object arg12, Object arg13, Object arg14, Object arg15, Object arg16, Object arg17, Object arg18, Object arg19, Object arg20) - throws Exception; + throws Exception; public Object invoke(Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, Object arg6, Object arg7, Object arg8, Object arg9, Object arg10, Object arg11, Object arg12, Object arg13, Object arg14, Object arg15, Object arg16, Object arg17, Object arg18, Object arg19, Object arg20, Object... args) - throws Exception; + throws Exception; public Object applyTo(ISeq arglist) throws Exception; } diff --git a/src/jvm/clojure/lang/InstanceMemberInvoker.java b/src/jvm/clojure/lang/InstanceMemberInvoker.java index fe6a48c3..2a888c46 100644 --- a/src/jvm/clojure/lang/InstanceMemberInvoker.java +++ b/src/jvm/clojure/lang/InstanceMemberInvoker.java @@ -19,6 +19,10 @@ public InstanceMemberInvoker(String className, String memberName){ this.memberName = memberName;
}
+public Object call() throws Exception{
+ return invoke();
+}
+
public Object invoke() throws Exception{
return AFn.throwArity();
}
diff --git a/src/jvm/clojure/lang/Keyword.java b/src/jvm/clojure/lang/Keyword.java index 5be8af38..73f4889a 100644 --- a/src/jvm/clojure/lang/Keyword.java +++ b/src/jvm/clojure/lang/Keyword.java @@ -55,6 +55,10 @@ public String toString(){ return ":" + sym; } +public Object call() throws Exception{ + return AFn.throwArity(); +} + public Object invoke() throws Exception{ return AFn.throwArity(); } diff --git a/src/jvm/clojure/lang/LockingTransaction.java b/src/jvm/clojure/lang/LockingTransaction.java index 8ee7678d..5ba5b586 100644 --- a/src/jvm/clojure/lang/LockingTransaction.java +++ b/src/jvm/clojure/lang/LockingTransaction.java @@ -57,6 +57,9 @@ public static class Info{ //transactions will consume a point for init, for each retry, and on commit if writing final private static AtomicInteger lastPoint = new AtomicInteger(); +void getReadPoint(){ + readPoint = lastPoint.incrementAndGet(); +} long getCommitPoint(){ return lastPoint.incrementAndGet(); @@ -87,9 +90,6 @@ final HashMap<Ref, Object> vals = new HashMap<Ref, Object>(); final HashSet<Ref> sets = new HashSet<Ref>(); final TreeMap<Ref, ArrayList<IFn>> commutes = new TreeMap<Ref, ArrayList<IFn>>(); -void getReadPoint(){ - readPoint = lastPoint.incrementAndGet(); -} //returns the most recent val Object lock(Ref ref) throws Exception{ diff --git a/src/jvm/clojure/lang/Ref.java b/src/jvm/clojure/lang/Ref.java index 9488da06..2396ff6b 100644 --- a/src/jvm/clojure/lang/Ref.java +++ b/src/jvm/clojure/lang/Ref.java @@ -177,6 +177,10 @@ final public IFn fn(){ return (IFn) cachedVal(); } +public Object call() throws Exception{ + return invoke(); +} + public Object invoke() throws Exception{ return fn().invoke(); } diff --git a/src/jvm/clojure/lang/StaticMemberInvoker.java b/src/jvm/clojure/lang/StaticMemberInvoker.java index 305d0319..ba5cf28b 100644 --- a/src/jvm/clojure/lang/StaticMemberInvoker.java +++ b/src/jvm/clojure/lang/StaticMemberInvoker.java @@ -19,6 +19,10 @@ public StaticMemberInvoker(String className, String memberName){ this.memberName = memberName;
}
+public Object call() throws Exception{
+ return invoke();
+}
+
public Object invoke() throws Exception{
return Reflector.invokeStaticMethod(memberName, className);
}
|