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/tc... ============================================================================== --- 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 );