On Wednesday 27 October 2004 07:13 am, Stefano Ceccherini wrote: > I'm not Rudolf but I hope you'll pardon me if I reply :) > > > What is/means engine synchronization? > > My take is that it's a means to lock the driver/hardware, to be able to > serialize the access to it. It's like any other form of locking, just that > it's the driver/accelerant which implements it. That way you don't have to > implement your own locking in the displaydriver class, you just call > acquire_engine_global() before calling any accelerant function, then > release_engine_global() when you're finished. Acquiring the engine is essentially just a lock, but it is a lock that is relevant to more than just a single process. Whenever you need to use the 2d acceleration functions (possible some others, I forget), you must acquire the engine, execute the function, and then release the engine. Only one thread in the entire system can have access to the engine, so it is very important that you release the engine promptly. While experimenting, I have messed with an application that acquired the engine, and then basicly just never released it. That is a very effective way to hang the app_server.