aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2015-11-08 21:03:11 +0100
committerMartin Odersky <odersky@gmail.com>2015-11-09 15:45:41 +0100
commit137715529d51e489c291e4e881842ac45532e971 (patch)
tree2ac74c7d67e58251baaeebccc8b0988adf6f5f58
parent4007e71ecaf17d794ba5fc8aa8d2700efc3e3263 (diff)
downloaddotty-137715529d51e489c291e4e881842ac45532e971.tar.gz
dotty-137715529d51e489c291e4e881842ac45532e971.tar.bz2
dotty-137715529d51e489c291e4e881842ac45532e971.zip
Make dir.list synchronized.
Just a grap at straws to get a handle for the missing reference problem.
-rw-r--r--src/dotty/tools/io/ClassPath.scala7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/dotty/tools/io/ClassPath.scala b/src/dotty/tools/io/ClassPath.scala
index 0d1402430..e30eca492 100644
--- a/src/dotty/tools/io/ClassPath.scala
+++ b/src/dotty/tools/io/ClassPath.scala
@@ -25,13 +25,16 @@ import language.postfixOps
* @author Stepan Koltsov
*/
object ClassPath {
+
/** Expand single path entry */
private def expandS(pattern: String): List[String] = {
val wildSuffix = File.separator + "*"
/** Get all subdirectories, jars, zips out of a directory. */
- def lsDir(dir: Directory, filt: String => Boolean = _ => true) =
- dir.list filter (x => filt(x.name) && (x.isDirectory || isJarOrZip(x))) map (_.path) toList
+ def lsDir(dir: Directory, filt: String => Boolean = _ => true) = {
+ val files = synchronized(dir.list)
+ files filter (x => filt(x.name) && (x.isDirectory || isJarOrZip(x))) map (_.path) toList
+ }
def basedir(s: String) =
if (s contains File.separator) s.substring(0, s.lastIndexOf(File.separator))