diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/cli/runtime/EnumeratorSeq.cs | 58 |
1 files changed, 28 insertions, 30 deletions
diff --git a/src/cli/runtime/EnumeratorSeq.cs b/src/cli/runtime/EnumeratorSeq.cs index ef844864..cd42d42a 100644 --- a/src/cli/runtime/EnumeratorSeq.cs +++ b/src/cli/runtime/EnumeratorSeq.cs @@ -13,37 +13,35 @@ using System.Collections; namespace clojure.lang
{
-public class EnumeratorSeq : ASeq{
-IEnumerator e;
-volatile ISeq _rest;
+ public class EnumeratorSeq : ASeq
+ {
+ IEnumerator e;
+ ISeq _rest;
-public static EnumeratorSeq create(IEnumerator e){
- if(e.MoveNext())
- return new EnumeratorSeq(e);
- return null;
-}
+ public static EnumeratorSeq create(IEnumerator e) {
+ if (e.MoveNext())
+ return new EnumeratorSeq(e);
+ return null;
+ }
-EnumeratorSeq(IEnumerator e){
- this.e = e;
- this._rest = this;
-}
+ EnumeratorSeq(IEnumerator e) {
+ this.e = e;
+ this._rest = this;
+ }
-override public Object first() {
- return e.Current;
-}
+ override public Object first() {
+ return e.Current;
+ }
-override public ISeq rest() {
- if(_rest == this)
- {
- lock(this){
- if(_rest == this)
- {
- _rest = create(e);
- }
- }
- }
- return _rest;
-}
-}
-
-}
+ override public ISeq rest() {
+ lock (this)
+ {
+ if (_rest == this)
+ {
+ _rest = create(e);
+ }
+ return _rest;
+ }
+ }
+ }
+}
\ No newline at end of file |