Ignore get shadow buffer function.

Remember to synchronize VGA display on program exit because update
thread may not have time to run.
This commit is contained in:
Jukka Heinonen 2003-02-19 23:27:01 +00:00 committed by Alexandre Julliard
parent 76c3065751
commit a969416c56
2 changed files with 26 additions and 0 deletions

View File

@ -1110,6 +1110,11 @@ void WINAPI DOSVM_Int10Handler( CONTEXT86 *context )
INT10_HandleVESA(context);
break;
case 0xfe: /* GET SHADOW BUFFER */
TRACE( "GET SHADOW BUFFER %x:%x - ignored\n",
context->SegEs, DI_reg(context) );
break;
default:
FIXME("Unknown - 0x%x\n", AH_reg(context));
INT_BARF( context, 0x10 );

View File

@ -283,11 +283,32 @@ static void VGA_DeinstallTimer(void)
{
if (VGA_timer_thread)
{
/*
* Make sure the update thread is not holding
* system resources when we kill it.
*
* Now, we only need to worry about update thread
* getting terminated while in EnterCriticalSection
* or WaitForMultipleObjectsEx.
*
* FIXME: Is this a problem?
*/
EnterCriticalSection(&vga_lock);
CancelWaitableTimer( VGA_timer );
CloseHandle( VGA_timer );
TerminateThread( VGA_timer_thread, 0 );
CloseHandle( VGA_timer_thread );
VGA_timer_thread = 0;
LeaveCriticalSection(&vga_lock);
/*
* Synchronize display. This makes sure that
* changes to display become visible even if program
* terminates before update thread had time to run.
*/
VGA_Poll( 0, 0, 0 );
}
}