Make the High-level security interface parallelized
Created by: agraubert
Until I have a proper name for the new interface, I'm just going to call it Security
. So each Security
instance should maintain a single worker thread, which listens for incoming commands, and spawns new threads to deal with them. Each thread can operate in parallel with the exception that each channel can only perform one operation at a time (ie: if two threads are performing commands on one channel, one of them must wait until the other completes). The user interface will enqueue new commands to the worker thread (when sending data) and block until incoming data is made available from the pool of command threads