Fixes for asynchronous file IO

Martin Wilck Martin.Wilck at Fujitsu-Siemens.com
Tue Nov 26 13:40:32 CST 2002


Martin Fuchs has reported some problems with asynchronous file IO that
are fixed by this patch. 

Index: files/file.c
===================================================================
RCS file: /home/wine/wine/files/file.c,v
retrieving revision 1.170
diff -u -r1.170 file.c
--- files/file.c	21 Nov 2002 03:45:03 -0000	1.170
+++ files/file.c	26 Nov 2002 10:34:21 -0000
@@ -152,7 +152,7 @@
     async_fileio *ovp = (async_fileio*) data;
     TRACE ("data: %p\n", ovp);
 
-    ovp->completion_func( ovp->lpOverlapped->Internal,
+    ovp->completion_func( RtlNtStatusToDosError ( ovp->lpOverlapped->Internal ),
                           ovp->lpOverlapped->InternalHigh,
                           ovp->lpOverlapped );
 
@@ -1697,6 +1705,11 @@
         r = FILE_GetNtStatus ();
         goto async_end;
     }
+    else if ( result == 0 )
+    {
+        r = ( lpOverlapped->InternalHigh ? STATUS_SUCCESS : STATUS_END_OF_FILE );
+        goto async_end;
+    }
 
     lpOverlapped->InternalHigh += result;
     TRACE("read %d more bytes %ld/%d so far\n",result,lpOverlapped->InternalHigh,fileio->count);



-- 
Martin Wilck                Phone: +49 5251 8 15113
Fujitsu Siemens Computers   Fax:   +49 5251 8 20409
Heinz-Nixdorf-Ring 1	    mailto:Martin.Wilck at Fujitsu-Siemens.com
D-33106 Paderborn           http://www.fujitsu-siemens.com/primergy








More information about the wine-patches mailing list