Diff
Not logged in

Differences From Artifact [5836ef7341]:

To Artifact [ed6f984376]:


1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1103
1104
1105
1106
1107
1108
1109

1110
1111
1112
1113
1114
1115
1116







-







	ReleaseSRWLockShared(&gConsoleLock);
	return 0; /* EOF */
    }
    AcquireSRWLockExclusive(&handleInfoPtr->lock);
    ReleaseSRWLockShared(&gConsoleLock); /* AFTER acquiring handleInfoPtr->lock */

    while (1) {
	int freeSpace = RingBufferFreeSpace(&handleInfoPtr->buffer);
	numRead = RingBufferOut(&handleInfoPtr->buffer, bufPtr, bufSize, 1);
	/*
	 * Note: even if channel is closed or has an error, as long there is
	 * buffered data, we will pass it up.
	 */
	if (numRead != 0) {
	    /* If console thread was blocked, awaken it */