hrydgard/ppsspp — pull request #3700 by unknownbrackets (2013-09-09 04:47:18+00:00)
Title: Improve callbacks (still not rescheduling properly inside one)

This fixes some more surface-level issues with callbacks. I still need to figure out how to get the callbacks to schedule right without tripping over each other.

Specifically:
* A callback can be notified by different things, umd, power, etc., but it's only called once. We were calling it multiple times, with bad parameters.
* Correctly associates callbacks to the thread they were created on (not the active thread when they were registered.)
* Callbacks are executed in the order they were created, even if they were not notified in that order. The umd/wait/wait test actually shows this, but it was working by accident because of the types.
* Callbacks are silently deleted when the thread they were tied to is deleted.

Also cleaned up waits a bit more, noticed a few debug warnings, when decrementing an iterator that's already at begin.

-[Unknown]