RemotePluginProcess: don't use a thread for cancel
The CancelThread
implementation is complex and smells of poor knowledge and cargo programming.
Here we remove that class, and instead handle cancelling events in the same thread: this makes code much simpler and is enough for our plugins, which always spend more time waiting for network replies than in actual computations.
In order to achieve this, a small change is needed to the BlobIoHandler
class, to let its client know when it's in the middle of a read operation (we don't want to read from the socket at that time, or we'd be stealing data from it).
The ssotest
plugin also needed to be adjusted to avoid using mutexes and replace busy waits with a QTimer.