summaryrefslogtreecommitdiff
path: root/src/reflect/scala/reflect/runtime/JavaUniverseForce.scala
diff options
context:
space:
mode:
authorEugene Burmako <xeno.by@gmail.com>2013-02-04 12:11:20 +0100
committerEugene Burmako <xeno.by@gmail.com>2013-10-18 17:48:52 +0200
commit37f4e9ce3a05a5821d2a5e20af28f34355d12dfb (patch)
tree6885c3ce8cb22efda0cd5ffdc2285158f8b377c7 /src/reflect/scala/reflect/runtime/JavaUniverseForce.scala
parent174f1465335bead724da6bf2ae823830422dd51c (diff)
downloadscala-37f4e9ce3a05a5821d2a5e20af28f34355d12dfb.tar.gz
scala-37f4e9ce3a05a5821d2a5e20af28f34355d12dfb.tar.bz2
scala-37f4e9ce3a05a5821d2a5e20af28f34355d12dfb.zip
thread locals instead of locks for vars in Types.scala
This is one of the changes suggested by Roland in order to reduce contention caused by reflection GIL. Locks optimized away here are indirectly used for such fundamental operations as subtyping tests, so the optimization looks quite important.
Diffstat (limited to 'src/reflect/scala/reflect/runtime/JavaUniverseForce.scala')
-rw-r--r--src/reflect/scala/reflect/runtime/JavaUniverseForce.scala15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/reflect/scala/reflect/runtime/JavaUniverseForce.scala b/src/reflect/scala/reflect/runtime/JavaUniverseForce.scala
index 70126e713a..5f004330c3 100644
--- a/src/reflect/scala/reflect/runtime/JavaUniverseForce.scala
+++ b/src/reflect/scala/reflect/runtime/JavaUniverseForce.scala
@@ -29,6 +29,19 @@ trait JavaUniverseForce { self: runtime.JavaUniverse =>
this.treeInfo
this.gil
// inaccessible: this.uniqueLock
+ // inaccessible: this._skolemizationLevel
+ // inaccessible: this._undoLog
+ // inaccessible: this._intersectionWitness
+ // inaccessible: this._volatileRecursions
+ // inaccessible: this._pendingVolatiles
+ // inaccessible: this._subsametypeRecursions
+ // inaccessible: this._pendingSubTypes
+ // inaccessible: this._basetypeRecursions
+ // inaccessible: this._pendingBaseTypes
+ // inaccessible: this._lubResults
+ // inaccessible: this._glbResults
+ // inaccessible: this._indent
+ // inaccessible: this._tostringRecursions
// inaccessible: this.nextIdLock
// inaccessible: this.freshExistentialNameLock
// inaccessible: this.mirrors
@@ -166,7 +179,7 @@ trait JavaUniverseForce { self: runtime.JavaUniverse =>
this.unwrapToStableClass
this.unwrapWrapperTypes
this.RecoverableCyclicReference
- this.undoLog
+ // inaccessible: this._undoLog
// inaccessible: this.numericLoBound
// inaccessible: this.numericHiBound
this.TypeConstraint