Undocumented Canvas repaint/paint deadlock in Nokia j2me
my application was working fine on models other than Nokia, but used to freeze on Nokia phones. I was wondering why. With the emulator (Nokia Developer's Suite 2.2) I found out the following:
Calling Canvas.repaint() requires somehow some 'work' of the system's Thread that is used for calling Canvas.paint(Graphics g).
Suppose the following implementation of paint:
.....// do preparations
..........//paint the stuff
Now, calling from my own thread
will cause a deadlock, if paint() is currently executed and it is incidently in the code segment marked "do preparations"
That's why I assume that repaint() somehow waits for the painting thread. Is this true, and if yes, why is this necessary? There is nothing about this in the j2me specs.