Overview
Comment: | some kqueue logic changes, now input stream is flushed from kqueue when eof was found |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | master | trunk |
Files: | files | file ages | folders |
SHA3-256: |
ae1c0114c1e9c9876fa10d63f7ee9351 |
User & Date: | c.kworr@d4daf22a-8aaf-11de-a64d-234b64dd91b4 on 2010-08-09 16:37:18.000 |
Other Links: | branch diff | manifest | tags |
Context
2010-08-12
| ||
21:23 | database dumping integrated check-in: ae30851739 user: c.kworr@d4daf22a-8aaf-11de-a64d-234b64dd91b4 tags: master, trunk | |
2010-08-09
| ||
16:37 | some kqueue logic changes, now input stream is flushed from kqueue when eof was found check-in: ae1c0114c1 user: c.kworr@d4daf22a-8aaf-11de-a64d-234b64dd91b4 tags: master, trunk | |
2010-08-07
| ||
22:02 | I even managed to mess things up one more time check-in: a55552d30f user: c.kworr@d4daf22a-8aaf-11de-a64d-234b64dd91b4 tags: master, trunk | |
Changes
Modified squid-tagger.py
from [652a6e7e43]
to [912ca3b436].
︙ | ︙ | |||
177 178 179 180 181 182 183 | timeout = None eof = False buffer = '' while True: # checking if there is any data or witing for data to arrive kevs = self._kq.control(None, 1, timeout) | < < < | | | | | | | | | | | | | | | | | | | | | | > > > > > > | 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 | timeout = None eof = False buffer = '' while True: # checking if there is any data or witing for data to arrive kevs = self._kq.control(None, 1, timeout) for kev in kevs: if kev.filter == self._select.KQ_FILTER_READ and kev.data > 0: # reading data in new_buffer = sys.stdin.read(kev.data) # if no data was sent - we have reached end of file if len(new_buffer) == 0: eof = True else: # adding current buffer to old buffer remains buffer += new_buffer # splitting to lines lines = buffer.split('\n') # last line that was not terminate by newline returns to buffer buffer = lines[-1] # an only if there was at least one newline if len(lines) > 1: for line in lines[:-1]: # add data to the queue if self.check(line + '\n'): # don't wait for more data, start processing timeout = 0 # detect end of stream and exit if possible if kev.flags >> 15 == 1: self._kq.control([self._select.kevent(sys.stdin, self._select.KQ_FILTER_READ, self._select.KQ_EV_DELETE)], 0) eof = True if len(kevs) == 0: if len(self._queue) > 0: # get one request and process it req = self._queue.pop(0) Checker.process(self, req[0], req[1], req[2], req[3]) if len(self._queue) == 0: # wait for data - we have nothing to process timeout = None |
︙ | ︙ |