diff --git a/Closeables/src/main/scala/com/thoughtworks/compute/Closeables.scala b/Closeables/src/main/scala/com/thoughtworks/compute/Closeables.scala deleted file mode 100644 index b1107605..00000000 --- a/Closeables/src/main/scala/com/thoughtworks/compute/Closeables.scala +++ /dev/null @@ -1,77 +0,0 @@ -package com.thoughtworks.compute - -import java.io.Closeable - -object Closeables { - - trait IsClosed { - protected final var closed = false - - } - - trait AssertionFinalizer { this: IsClosed => - override protected final def finalize(): Unit = { - if (!closed) { - throw new IllegalStateException("close() must be called before garbage collection.") - } - } - } - - trait IdempotentFinalizer { this: Closeable => - override protected final def finalize(): Unit = close() - } - - /** - * An idempotent `Closeable`. - * @author 杨博 (Yang Bo) <pop.atry@gmail.com> - */ - trait IdempotentCloseable extends Closeable { - - protected def forceClose(): Unit - - protected final var closed = false - - /** - * Calls [[forceClose]] and then marks this [[IdempotentCloseable]] as closed if this [[IdempotentCloseable]] was not closed; does nothing otherwise. - */ - override final def close(): Unit = { - val wasClosed = synchronized { - val wasClosed = closed - if (!wasClosed) { - closed = true - } - wasClosed - } - if (!wasClosed) { - forceClose() - } - } - - } - - trait AssertionAutoCloseable extends AutoCloseable with IsClosed { - - protected def forceClose(): Unit - - /** - * Calls [[forceClose]] and then marks this [[AssertionAutoCloseable]] as closed if this [[AssertionAutoCloseable]] was not closed; throw an exception otherwise. - */ - @throws(classOf[IllegalStateException]) - override final def close(): Unit = { - val wasClosed = synchronized { - val wasClosed = closed - if (!wasClosed) { - closed = true - } - wasClosed - } - if (wasClosed) { - throw new IllegalStateException("Can't close more than once.") - } else { - forceClose() - } - } - - } - -} diff --git a/build.sbt b/build.sbt index 3fa0a6eb..5311f821 100644 --- a/build.sbt +++ b/build.sbt @@ -4,9 +4,7 @@ organization in ThisBuild := "com.thoughtworks.compute" lazy val Memory = project -lazy val Closeables = project - -lazy val OpenCL = project.dependsOn(Closeables, Memory) +lazy val OpenCL = project.dependsOn(Memory) lazy val OpenCLCodeGenerator = project.dependsOn(Memory)