In reply to sriram.seshagiri:
It would have helped to show the exact code you are running in the first place. I finally understand your issue has nothing to do with default implicit lifetime—everything has automatic lifetime with the explicit keyword.
Your issue is simply which automatic variable you are using. There is only one instance of the
eq_pa and
i variables shared amongst all the threads. By the time any thread begins execution, those variables have reached their final values.
But when you declare automatic variables inside the for loop, each iteration creates a new instance of that variable using the current value of the initialization expression. So their are actually 10 different sets of
eq_pa_r and
j being passed to
hiarb_hifis_req() each with a unique set of values.