i observed that all processes registered with SC_THREAD macro are
called with the same thread. Is this correct?
In my module im having a infinite loop inside the process which reads
from a port attached to sc_signal_in_if, which does not wait but
return immediately. see below : this is the testbench of a UART, which
waits for the start bit. when thread arrives here, it never exit. so
my other processes are never called once the thread enters this
process, because it uses the same thread for all of them.

void data_receive()
{
cout << __FUNCTION__ << " : " << GetCurrentThreadId() << endl;
wait(1, SC_NS);
while(true)
{
if(serial_data_in_port->read() == 0) //start bit
{
// othet statements

}
}
}