儲存庫 vbox 的更動 34912
圖例:
- 未更動
- 新增
- 刪除
-
trunk/doc/manual/user_ChangeLogImpl.xml
r34909 r34912 142 142 143 143 <listitem> 144 <para>3D support: fixed Direct3D 8/9 support on WindowsXP guests</para> 145 </listitem> 146 147 <listitem> 144 148 <para>2D Video acceleration: multimonitor support</para> 145 149 </listitem> -
trunk/src/VBox/Additions/common/crOpenGL/load.c
r34887 r34912 387 387 if (RTThreadGetState(stub.hSyncThread)!=RTTHREADSTATE_TERMINATED) 388 388 { 389 HANDLE hNative; 390 DWORD ec=0; 391 392 hNative = OpenThread(SYNCHRONIZE|THREAD_QUERY_INFORMATION|THREAD_TERMINATE, 393 false, RTThreadGetNative(stub.hSyncThread)); 394 if (!hNative) 395 { 396 crWarning("Failed to get handle for sync thread(%#x)", GetLastError()); 397 } 398 else 399 { 400 crDebug("Got handle %p for thread %#x", hNative, RTThreadGetNative(stub.hSyncThread)); 401 } 402 389 403 ASMAtomicWriteBool(&stub.bShutdownSyncThread, true); 404 390 405 if (PostThreadMessage(RTThreadGetNative(stub.hSyncThread), WM_QUIT, 0, 0)) 391 406 { 392 407 RTThreadWait(stub.hSyncThread, 1000, NULL); 408 409 /*Same issue as on linux, RTThreadWait exits before system thread is terminated, which leads 410 * to issues as our dll goes to be unloaded. 411 *@todo 412 *We usually call this function from DllMain which seems to be holding some lock and thus we have to 413 * kill thread via TerminateThread. 414 */ 415 if (WaitForSingleObject(hNative, 100)==WAIT_TIMEOUT) 416 { 417 crDebug("Wait failed, terminating"); 418 if (!TerminateThread(hNative, 1)) 419 { 420 crDebug("TerminateThread failed"); 421 } 422 } 423 if (GetExitCodeThread(hNative, &ec)) 424 { 425 crDebug("Thread %p exited with ec=%i", hNative, ec); 426 } 427 else 428 { 429 crDebug("GetExitCodeThread failed(%#x)", GetLastError()); 430 } 393 431 } 394 432 else 395 433 { 396 434 crDebug("Sync thread killed before DLL_PROCESS_DETACH"); 435 } 436 437 if (hNative) 438 { 439 CloseHandle(hNative); 397 440 } 398 441 }
注意:
瀏覽 TracChangeset
來幫助您使用更動檢視器