aboutsummaryrefslogtreecommitdiff
path: root/flow/src/main/scala/com/github/jodersky/flow/SerialManager.scala
diff options
context:
space:
mode:
Diffstat (limited to 'flow/src/main/scala/com/github/jodersky/flow/SerialManager.scala')
-rw-r--r--flow/src/main/scala/com/github/jodersky/flow/SerialManager.scala10
1 files changed, 8 insertions, 2 deletions
diff --git a/flow/src/main/scala/com/github/jodersky/flow/SerialManager.scala b/flow/src/main/scala/com/github/jodersky/flow/SerialManager.scala
index 47c74a1..b6d1e74 100644
--- a/flow/src/main/scala/com/github/jodersky/flow/SerialManager.scala
+++ b/flow/src/main/scala/com/github/jodersky/flow/SerialManager.scala
@@ -3,14 +3,16 @@ package com.github.jodersky.flow
import scala.util.Failure
import scala.util.Success
import scala.util.Try
-
import com.github.jodersky.flow.internal.SerialConnection
-
import Serial.CommandFailed
import Serial.Open
import akka.actor.Actor
import akka.actor.ActorLogging
import akka.actor.actorRef2Scala
+import akka.actor.OneForOneStrategy
+import akka.actor.OneForOneStrategy
+import akka.actor.SupervisorStrategy._
+import scala.concurrent.duration._
/**
* Entry point to the serial API. Actor that manages serial port creation. Once opened, a serial port is handed over to
@@ -21,6 +23,10 @@ class SerialManager extends Actor with ActorLogging {
import SerialManager._
import context._
+ override val supervisorStrategy = OneForOneStrategy() {
+ case _: Exception => Stop
+ }
+
def receive = {
case open @ Open(port, settings, bufferSize) => Try {
SerialConnection.open(port, settings)