9. ResultScheduler
The ResultScheduler component manages the following things “inside” ResultProcessor:
Request “queuing”
Result ordering for HTTP/1.1 requests
9.1. ResultProcessor Handling
* On StaticFS Data
- ResultOrder.append(ClientFD, HTTPType, ReqNr, SendFileFD)
* On POST AS Data
- ResultOrder.append(ClientFD, HTTPType, ReqNr, ASIndex)
* Process (loop on "Requests" ClientFDs)
- If ClientFD not in "LastRequest"
- Insert into "LastRequest" with Default RequestNr 1 and RequestTime now()
- ResultOrder.getNextRequests(ClientFD, HTTP1.2) -> ThreadHandler(getVirtualDomain())
- ResultOrder.getNextRequests(ClientFD, HTTP1.1) -> ThreadHandler(getVirtualDomain())
# Process in serial order. First: HTTP/1.2, afterwards HTTP/1.1.
If no HTTP/1.2 request: process HTTP/1.1.
* On ThreadHandler::Terminator::ClientFD::Termination (Callback pointer)
- Update "LastRequest" (unordered map) ClientFD RequestNr, RequestTime
- Remove all processed ClientFD ReqNrs from "Requests", "LastRequests"
9.2. Future Releases
The development process showed: it is not advisable to implement RequestUUID into HTTP/1.1 compatibility. It never will be implemented into future browser code.
Note
Future releases will offer a seperate build option for HTTP/1.1 and HTTP/1.2 making the ResultProcessor separation / ResultOrdering for HTTP/1.2 obsolete.