Skip to content

Commit 5963ed2

Browse files
committed
Add blockingAwait method
1 parent 5b60a46 commit 5963ed2

File tree

1 file changed

+8
-1
lines changed
  • plain-old-scala-factory-design-pattern/src/main/scala/com/thoughtworks/plainoldscalafactorydesignpattern

1 file changed

+8
-1
lines changed

plain-old-scala-factory-design-pattern/src/main/scala/com/thoughtworks/plainoldscalafactorydesignpattern/continuation.scala

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import com.thoughtworks.plainoldscalafactorydesignpattern.covariant._
33

44
import language.higherKinds
55
import language.implicitConversions
6+
import scala.concurrent.SyncVar
67

78
/**
89
* @author 杨博 (Yang Bo)
@@ -30,7 +31,13 @@ object continuation {
3031

3132
object UnitContinuation extends ContinuationFactory with BoxCompanion {
3233
type Result = Unit
33-
implicit final class Facade[+A](val unbox: Unboxed[A]) extends AnyVal with Continuation[A]
34+
implicit final class Facade[+A](val unbox: Unboxed[A]) extends AnyVal with Continuation[A] {
35+
def blockingAwait: A = {
36+
val syncVar: SyncVar[A] = new SyncVar
37+
unbox(syncVar.put)
38+
syncVar.take
39+
}
40+
}
3441
}
3542

3643
/** @template */

0 commit comments

Comments
 (0)