ez-cdda sleep

Mike Hearn mh at codeweavers.com
Mon Oct 18 08:57:27 CDT 2004

 >> - storing context in server while entering USR1 signal handler (to be
 >> done without races, which will require some more work, as the server
 >> doesn't synchronize with the USR1 handler)

I've implemented this in my local tree, and it works fine: Easy CD-DA 
gets further now. It is still being nailed by the copy protection system 
(called "Armadillo" apparently) but the splash screen appears now :)

Today the BT engineer reconnected our line. So, now I just have to wait 
for ADSL to be activated, then I can flush my patch queue and get back 
to some real work.

To eliminate the race at the top of SIGUSR1 handler I made server 
get_thread_context/set_thread_context RPCs fail with STATUS_RETRY if the 
context has not yet been uploaded, and adjusted the ntdll code to spin 
in a loop yielding the timeslice whenever it receives STATUS_RETRY. It's 
not fancy but it works, and on average only 1 yield is needed (obvious 
in hindsight I guess).

The SIGCONTEXT is reloaded when the context override is cancelled, so 
set_thread_context on a suspended thread works as expected.

thanks -mike

More information about the wine-devel mailing list