Author: cgutman
Date: Sat Jun 27 11:03:45 2009
New Revision: 41633

URL: http://svn.reactos.org/svn/reactos?rev=41633&view=rev
Log:
 - Use the timeout that the caller gives us if it is nonzero so we don't block 
forever if nobody wakes us

Modified:
    trunk/reactos/lib/drivers/ip/transport/tcp/event.c

Modified: trunk/reactos/lib/drivers/ip/transport/tcp/event.c
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/drivers/ip/transport/tcp/event.c?rev=41633&r1=41632&r2=41633&view=diff
==============================================================================
--- trunk/reactos/lib/drivers/ip/transport/tcp/event.c [iso-8859-1] (original)
+++ trunk/reactos/lib/drivers/ip/transport/tcp/event.c [iso-8859-1] Sat Jun 27 
11:03:45 2009
@@ -112,6 +112,7 @@
 int TCPSleep( void *ClientData, void *token, int priority, char *msg,
              int tmio ) {
     PSLEEPING_THREAD SleepingThread;
+    LARGE_INTEGER Timeout;
 
     TI_DbgPrint(DEBUG_TCP,
                ("Called TSLEEP: tok = %x, pri = %d, wmesg = %s, tmio = %x\n",
@@ -131,12 +132,14 @@
        InsertTailList( &SleepingThreadsList, &SleepingThread->Entry );
        TcpipReleaseFastMutex( &SleepingThreadsLock );
 
+        Timeout.QuadPart = Int32x32To64(tmio, -10000);
+
        TI_DbgPrint(DEBUG_TCP,("Waiting on %x\n", token));
        KeWaitForSingleObject( &SleepingThread->Event,
-                              WrSuspended,
+                              Executive,
                               KernelMode,
                               TRUE,
-                              NULL );
+                              (tmio != 0) ? &Timeout : NULL );
 
        TcpipAcquireFastMutex( &SleepingThreadsLock );
        RemoveEntryList( &SleepingThread->Entry );

Reply via email to