diff options
author | Jakob Odersky <jodersky@gmail.com> | 2014-03-27 20:19:28 +0100 |
---|---|---|
committer | Jakob Odersky <jodersky@gmail.com> | 2014-03-27 20:19:28 +0100 |
commit | b6f27be4eda4ec0e50aaca8eb3a117db60b4067e (patch) | |
tree | a0f9e2e054e8869b4db4b727d9e3e8e3a8fabd85 /flow/src/main/scala/com/github/jodersky/flow/internal/SerialConnection.scala | |
parent | d3960d3748e7b83f3ad18fa226ed88c7a5b01941 (diff) | |
download | akka-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.scala | 11 |
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") |