> It sounds like the rule is now:
> o You can use schedule() when you just want to possibly give time
> to other processes, modulo scheduling policy now in effect. After
> all, schedule() didn't always yield in the past; it only yielded if
> there was any reason to do so.
Indeed. To force a yield, you would need to do a
current->counter = 0;
before you schedule(), otherwise you might well be picked for
immediate reschedule. schedule() just forces the scheduler algorithm
to run, it doesn't force a context switch as a yield() should do.
Cheers,
Stephen.