diff --git a/src/main/scala/lecture1/02-scalaThreadWrapper.scala b/src/main/scala/lecture1/02-scalaThreadWrapper.scala index 2c64f045d03ae4cc31ccb1ac8e58a5a2fbdfda54..bb66082a5c6c70b3b06477bb0279b8c1e957d235 100644 --- a/src/main/scala/lecture1/02-scalaThreadWrapper.scala +++ b/src/main/scala/lecture1/02-scalaThreadWrapper.scala @@ -19,7 +19,7 @@ class ThreadReturning[A](toRun: => A) extends Thread: join() result -def thread[A](toRun: => A): ThreadReturning[A] = +def threadStart[A](toRun: => A): ThreadReturning[A] = val t = ThreadReturning(toRun) t.start() t @@ -37,5 +37,5 @@ def countLots: Long = // Run from the SBT shell with `runMain lecture1.scalaThreadWrapper`. @main def scalaThreadWrapper: Unit = - val (x, y) = (thread(countLots), thread(countLots)) + val (x, y) = (threadStart(countLots), threadStart(countLots)) println((x.joinMe, y.joinMe)) diff --git a/src/main/scala/lecture1/04-task.scala b/src/main/scala/lecture1/04-task.scala index 2dcb09c626adf48a04ce8f9781fc502a66d1a5e2..e14d04b31b0bbf7abc7fe6f5e5d36c70b60f390d 100644 --- a/src/main/scala/lecture1/04-task.scala +++ b/src/main/scala/lecture1/04-task.scala @@ -7,5 +7,7 @@ package lecture1 trait Task[A]: def join: A -def task[A](toRun: => A): Task[A] = new Task[A]: - override def join: A = thread(toRun).joinMe +def task[A](toRun: => A): Task[A] = + val t = threadStart(toRun) + new Task[A]: + override def join: A = t.joinMe diff --git a/src/main/scala/lecture6/04-OnePlaceBufferDemo.scala b/src/main/scala/lecture6/04-OnePlaceBufferDemo.scala index 8f05989f1131d3702d477ca269e22d3b0963a6d0..2c42755152d5e69b1d19a0ba60d44f6f82b1a255 100644 --- a/src/main/scala/lecture6/04-OnePlaceBufferDemo.scala +++ b/src/main/scala/lecture6/04-OnePlaceBufferDemo.scala @@ -1,7 +1,7 @@ package lecture6 import scala.concurrent.ExecutionContext -import lecture1.thread +import lecture1.threadStart class OnePlaceBuffer[Elem]: var elem: Elem = _ @@ -23,7 +23,7 @@ class OnePlaceBuffer[Elem]: @main def OnePlaceBufferDemo = val buffer = OnePlaceBuffer[Int]() - val getThreads = for i <- 0 until 10 yield thread { buffer.get() } - val putThreads = for i <- 0 until 10 yield thread { buffer.put(i) } + val getThreads = for i <- 0 until 10 yield threadStart { buffer.get() } + val putThreads = for i <- 0 until 10 yield threadStart { buffer.put(i) } putThreads.foreach(_.join()) getThreads.foreach(_.join())