diff app/src/main/java/com/bartsent/simpleresizer/lib/Channel.kt @ 9:884092efe31a concur

Gets gratuitously killed. WTF?
author David Barts <n5jrn@me.com>
date Wed, 17 Feb 2021 13:20:25 -0800
parents 9374d044a132
children
line wrap: on
line diff
--- a/app/src/main/java/com/bartsent/simpleresizer/lib/Channel.kt	Wed Feb 17 07:24:26 2021 -0800
+++ b/app/src/main/java/com/bartsent/simpleresizer/lib/Channel.kt	Wed Feb 17 13:20:25 2021 -0800
@@ -1,5 +1,6 @@
 package com.bartsent.simpleresizer.lib
 
+import android.util.Log
 import java.util.concurrent.Semaphore
 
 /**
@@ -17,11 +18,13 @@
      * @param item      Item to write
      */
     fun write(item: T): Unit {
+        Log.d("Channel<${hashCode()}>", "write…")
         wSem.acquire()
         synchronized(this) {
             buffer[(start + rSem.availablePermits()) % buffer.size] = item
             rSem.release()
         }
+        Log.d("Channel<${hashCode()}>", "write done")
     }
 
     /**
@@ -29,12 +32,14 @@
      * @return          The item read
      */
     fun read(): T {
+        Log.d("Channel<${hashCode()}>", "read…")
         rSem.acquire()
         synchronized(this) {
             val ret = buffer[start]!! as T
             buffer[start] = null // unref
             start = (start + 1) % buffer.size
             wSem.release()
+            Log.d("Channel<${hashCode()}>", "read done")
             return ret
         }
     }