| 142 | } |
| 143 | |
| 144 | size_t NonblockingSource::PumpMessages2(unsigned int &messageCount, bool blocking) |
| 145 | { |
| 146 | if (messageCount == 0) |
| 147 | return 0; |
| 148 | |
| 149 | messageCount = 0; |
| 150 | |
| 151 | lword byteCount; |
| 152 | do { |
| 153 | byteCount = LWORD_MAX; |
| 154 | RETURN_IF_NONZERO(Pump2(byteCount, blocking)); |
| 155 | } while(byteCount == LWORD_MAX); |
| 156 | |
| 157 | if (!m_messageEndSent && SourceExhausted()) |
| 158 | { |
| 159 | RETURN_IF_NONZERO(AttachedTransformation()->Put2(NULL, 0, GetAutoSignalPropagation(), true)); |
| 160 | m_messageEndSent = true; |
| 161 | messageCount = 1; |
| 162 | } |
| 163 | return 0; |
| 164 | } |
| 165 | |
| 166 | lword NonblockingSink::TimedFlush(unsigned long maxTime, size_t targetSize) |
| 167 | { |
nothing calls this directly
no test coverage detected