On Tue 2020-05-05 17:05:37, Andy Shevchenko wrote:
On Tue, May 5, 2020 at 4:37 PM Pavel Machek pavel@denx.de wrote:
On Tue 2020-05-05 16:19:11, Andy Shevchenko wrote:
On Tue, May 5, 2020 at 3:58 PM Pavel Machek pavel@denx.de wrote:
On Tue 2020-05-05 15:51:16, Andy Shevchenko wrote:
On Tue, May 5, 2020 at 3:37 PM Pavel Machek pavel@denx.de wrote:
> So, to the point, the conditional of checking the thread to be stopped being > first part of conjunction logic prevents to check iterations. Thus, we have to > always check both conditions
vvv
> to be able to stop after given iterations.
^^^
_If_ you are already stopping due to kthread_should_stop(), you don't need to check iterations.
If you are not stopping, iterations are always checked.
No, the new code does not "always check both conditions" as you claim.
Yes. Please, read carefully the commit message (for your convenience I emphasized above). I don't want to spend time on this basics stuff anymore.
You may want to go through the basics once more. The change clearly does not do what you said it does; in fact, it does not do anything.
If you wanted both conditions to always evaluate, you'd have to do
# while (!kthread_should_stop() # & !(params->iterations && total_tests >= # params->iterations)) {
(note && -> &). But, again, there's no reason to do that, as second part of expression does not have side effects.
It fixes a bug in the code, try with and without this change. (I can reproduce it here)
I'm not sure if you made mistake during testing, or if you have buggy compiler or what... Pavel