Am 24/02/2013 10:40, schrieb jscipione@xxxxxxxxx:
- fTrackingPID = spawn_thread(_TrackTask, "menu_tracking", B_DISPLAY_PRIORITY, - NULL); + fTrackingPID = spawn_thread(_TrackTask, "menu_tracking", + B_DISPLAY_PRIORITY, NULL);
This line seems to have been exactly 80 characters wide - are your editor settings alright, or did you only change it for esthetical reasons?
> + if (Window()->IsLocked()) { > + // If window is locked by the menu_tracking thread kill it > + // to prevent a deadlock. See ticket #8539. > + thread_id menu_tracking = find_thread("menu_tracking"); > + if (menu_tracking != B_NAME_NOT_FOUND) > + kill_thread(menu_tracking); > + }While this introduces a style violation (menu_tracking -> menuTracking, or even better trackingThread), if you have to kill a thread (that doesn't even belong you), you are doing something wrong.
Please revert this, and find the actual cause of the issue -- a deadlock does not happen because something takes long, it happens because there is a locking problem.
Bye, Axel.