aboutsummaryrefslogtreecommitdiff
path: root/flow/src/main/scala/com/github/jodersky/flow/internal/SerialConnection.scala
diff options
context:
space:
mode:
authorJakob Odersky <jodersky@gmail.com>2014-03-27 20:19:28 +0100
committerJakob Odersky <jodersky@gmail.com>2014-03-27 20:19:28 +0100
commitb6f27be4eda4ec0e50aaca8eb3a117db60b4067e (patch)
treea0f9e2e054e8869b4db4b727d9e3e8e3a8fabd85 /flow/src/main/scala/com/github/jodersky/flow/internal/SerialConnection.scala
parentd3960d3748e7b83f3ad18fa226ed88c7a5b01941 (diff)
downloadakka-serial-b6f27be4eda4ec0e50aaca8eb3a117db60b4067e.tar.gz
akka-serial-b6f27be4eda4ec0e50aaca8eb3a117db60b4067e.tar.bz2
akka-serial-b6f27be4eda4ec0e50aaca8eb3a117db60b4067e.zip
re-implement native side (TODO: direct buffers)
Diffstat (limited to 'flow/src/main/scala/com/github/jodersky/flow/internal/SerialConnection.scala')
-rw-r--r--flow/src/main/scala/com/github/jodersky/flow/internal/SerialConnection.scala11
1 files changed, 5 insertions, 6 deletions
diff --git a/flow/src/main/scala/com/github/jodersky/flow/internal/SerialConnection.scala b/flow/src/main/scala/com/github/jodersky/flow/internal/SerialConnection.scala
index 446160d..3bdc7ec 100644
--- a/flow/src/main/scala/com/github/jodersky/flow/internal/SerialConnection.scala
+++ b/flow/src/main/scala/com/github/jodersky/flow/internal/SerialConnection.scala
@@ -3,8 +3,7 @@ package com.github.jodersky.flow.internal
import java.nio.ByteBuffer
import java.util.concurrent.atomic.AtomicBoolean
-import com.github.jodersky.flow.PortClosedException
-import com.github.jodersky.flow.SerialSettings
+import com.github.jodersky.flow._
/**
* Represents a serial connection in a more secure and object-oriented style than `NativeSerial`. In contrast
@@ -43,10 +42,10 @@ class SerialConnection private (
closed.set(true)
NativeSerial.cancelRead(pointer)
readLock.synchronized {
- while (reading) wait()
+ while (reading) this.wait()
}
writeLock.synchronized {
- while (writing) wait()
+ while (writing) this.wait()
}
NativeSerial.close(pointer)
}
@@ -77,7 +76,7 @@ class SerialConnection private (
b => NativeSerial.read(pointer, b.array()))(buffer)
} finally {
reading = false
- if (closed.get) notify()
+ if (closed.get) readLock.notify()
}
} else {
throw new PortClosedException(s"port ${port} is closed")
@@ -108,7 +107,7 @@ class SerialConnection private (
b => NativeSerial.write(pointer, b.array(), b.remaining()))(buffer)
} finally {
writing = false
- if (closed.get) notify()
+ if (closed.get) writeLock.notify()
}
} else {
throw new PortClosedException(s"port ${port} is closed")