The threads that cubeb executes the data, state, and device_change
callbacks on is undefined. Using a single rpc Proxy for all three of the
ServerStreamCallbacks callbacks can result in the Proxy being used from
multiple threads concurrently (e.g. data_callback on the OS audio
thread and state_callback on the Server RPC thread) depending on the
cubeb backend in use.
Also remove the mpsc::channel clone from make_client, since it was
obscuring the root cause of this issue.
The threads that cubeb executes the data, state, and device_change callbacks on is undefined. Using a single rpc Proxy for all three of the ServerStreamCallbacks callbacks can result in the Proxy being used from multiple threads concurrently (e.g. data_callback on the OS audio thread and state_callback on the Server RPC thread) depending on the cubeb backend in use.
Also remove the mpsc::channel clone from make_client, since it was obscuring the root cause of this issue.