So we can pthread cancel a stuck thread, but can't pthread join it. And we can't tq freeze the old queue or we could hang here. And we need to re-initialise all the opencl contexts so send a test command and if it succeeds reinit the card.