| 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 | */ |
|---|