How to ensure thread's run function executes first

I have the below code where I am using threads started signal to ensure run function of the clientThread executes first and then any other function. All initialization are done in the run function and if any other function (serverConnect fn as below) executes first it creates issues.
But using logs I see that 1 in 10 times run function of clientThread executes after serverConnect().

You're running both of those in the same thread, moreover it probably isn't any of the threads you think ...
Firstly, read this and this, and secondly post more of the code, namely how drpThreadStarted is invoked and how the Base instance is created.

Even if we accept, as the basic tenet of true democracy, that one moron is equal to one genius, is it necessary to go a further step and hold that two morons are better than one genius?

Base is QMainwindow class and it should not be the issue because we are serializing the flow using started() signal

You think you do, but you're not. Both of those two slots are queued through the main thread's event loop, and also the slots in the QThread subclasses (unless invoked directly) are going to be executed in the main thread.

Even if we accept, as the basic tenet of true democracy, that one moron is equal to one genius, is it necessary to go a further step and hold that two morons are better than one genius?