The problem with trying to implement "a button state is real iff it's constant for 10ms" solely in interrupt handlers, is that you can't do that with just GPIO interrupts -- you need a timer or tick interrupt too. Think about a button that goes down at 0ms, up at 800ms, down at 805ms, and up at 1200ms. It's only a t=815ms that you can know that you're dealing with two real presses and not a bounce -- but you don't get an interrupt at t=815ms because there's no transition then.

Peter