Headache caused by multi-threading
and Android Open Accessory
.
I need to communicate with a USB Accessory, but I need to do it from 2 threads.
As you want to do read and write in parallel, writing will always lead to a pause to read if the read is on the same part as write.
May be you can follow similar approach as ConcurrentHashMap
and use different locks for different segments and lock read only if write is on the same segment else allow the read to happen.
This will
Hope that helps.
If using multiple threads, I do run into I/O Error (No such device) sooner or later, because I will have a collision between read & write being executed at the same time.
This says it all. Since you are doing read and write on the same channel that does not support concurrent access, you are required to have your thread wait until the other thread is done doing read/write.
Your two-thread approach is what I would do, more or less. Good luck and trust in yourself.