Hi Alexandre,
i have rewritten my patch for the latest wine release. The main changes from the previous are that it only checks overlapped operations in WaitForMultipleObjectswEx, and it now uses SetEvent to end the operation. (courtesy of your new servercall architecture). I have done a simple benchmark. The results of the benchmark on my Pii350 and an internal modem are as follows:
Wine 2001/03/05 vanilla + async-fix.diff: average write time for "AT" command: 675 usec average read time for response: 634 usec
Wine 2001/03/05 + client-async3.diff: average write time for "AT" command: 362 usec average read time for response: 322 usec
The times in themselves are pretty meaningless, but it is the same program, under the same conditions.
The patches and program i used are included.
Mike
On Tue, 6 Mar 2001, Alexandre Julliard wrote:
Michael McCormack mccormac@aals27.alcatel.com.au writes:
The patch can be further optimised, for example by keeping active asyncs in a seperate list from inactive asyncs. i think it is more efficient because the number of server calls and context switches is reduced.
Reducing the number of server calls but making them more expensive is not necessarily a gain. Show me the numbers...