I use BrickOS (LegOS) but I'm not expert in the inner workings. The code you have here appears fine to me. So, it may be a bug in BrickOS, or a problem elsewhere in your code. I will say I've ran into some interesting things when using tasks. (...) (17 years ago, 16-Jul-07, to lugnet.robotics.rcx.legos)
(...) It looks to me like the c compiler optimized the assignment to the variable away, since there is no external method call (shutdown_requested() is just a macro). (...) You should make this volatile int offonpad = 0; (...) You should also put an (...) (17 years ago, 16-Jul-07, to lugnet.robotics.rcx.legos)