yeah, it is correct, massively parallel architectures require to work with huge blocks of plaintext candidates on every kernel launch. it can (but not must) happen that the cracked plaintext was at the end of such a block, then a fresh new one begun while a parallel thread that handles the success message wasnt started. there are no locking mutexes to control this thread since it is not required in single hash cracking because in single hash cracking it will crack only 1 time a hash.