333 | | if (FD_ISSET (LoopBreakerReader, &fdreads)) |
---|
334 | | _ReadLoopBreaker(); |
---|
335 | | |
---|
| 333 | /* Changed 01Jun07. We used to handle the Loop-breaker right here. |
---|
| 334 | * Now we do it AFTER all the regular descriptors. There's an |
---|
| 335 | * incredibly important and subtle reason for this. Code on |
---|
| 336 | * loop breakers is sometimes used to cause the reactor core to |
---|
| 337 | * cycle (for example, to allow outbound network buffers to drain). |
---|
| 338 | * If a loop-breaker handler reschedules itself (say, after determining |
---|
| 339 | * that the write buffers are still too full), then it will execute |
---|
| 340 | * IMMEDIATELY if _ReadLoopBreaker is done here instead of after |
---|
| 341 | * the other descriptors are processed. That defeats the whole purpose. |
---|
| 342 | */ |
---|