- Timestamp:
- Jan 23, 2007 1:33:33 PM (18 years ago)
- Location:
- trunk/src/VBox
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VBoxBFE/DisplayImpl.cpp
r146 r238 140 140 { 141 141 LogFlow(("VMDisplay::handleDisplayResize: external framebuffer wants us to wait!\n")); 142 143 /* Note: The previously obtained framebuffer lock must be preserved. 144 * The EMT keeps the framebuffer lock until the resize process completes. 145 */ 146 142 147 /// @todo is this compatible with VBOX_NEXT_STEP? 143 148 // the framebuffer needs more time to process 144 149 // the event so we have to halt the VM until it's done 145 150 RTSemEventMultiReset(mResizeSem); 146 mFramebuffer->Unlock();147 151 RTSemEventMultiWait(mResizeSem, RT_INDEFINITE_WAIT); 148 mFramebuffer->Lock();149 152 } 150 153 -
trunk/src/VBox/Main/DisplayImpl.cpp
r1 r238 200 200 LogFlowFunc (("External framebuffer wants us to wait!\n")); 201 201 202 /* Note: The previously obtained framebuffer lock is preserved. 203 * The EMT keeps the lock until the resize process completes. 204 */ 205 202 206 /* The framebuffer needs more time to process 203 207 * the event so we have to halt the VM until it's done. 204 208 */ 205 209 RTSemEventMultiReset(mResizeSem); 206 mFramebuffer->Unlock();207 210 RTSemEventMultiWait(mResizeSem, RT_INDEFINITE_WAIT); /** @todo r=bird: this is a serious deadlock point, where EMT is stuck while the main thread is doing VMR3Req for some reason. */ 208 mFramebuffer->Lock();209 211 } 210 212 } … … 1540 1542 "for external framebuffers")); 1541 1543 1542 mFramebuffer->Lock();1543 1544 /* signal our semaphore */ 1544 1545 RTSemEventMultiSignal(mResizeSem); 1545 mFramebuffer->Unlock();1546 1546 1547 1547 return S_OK; -
trunk/src/VBox/Main/idl/VirtualBox.xidl
r235 r238 5501 5501 The caller checks if the call was successful 5502 5502 via IFramebuffer property 'PixelFormat'. 5503 5504 Note: The method is called by IDisplay under the Framebuffer lock. 5503 5505 </desc> 5504 5506 <param name="pixelFormat" type="FramebufferPixelFormat" dir="in">
Note:
See TracChangeset
for help on using the changeset viewer.