Let statemachine honor approvements.
The inventory bulk fetch is not thread-safe, so the it doesn't start right away, causing the approvement not to be honored upon return from post_approved (formerly post_nb). This patch renames wantsMoreHTTPReqestsFor to approveHTTPRequestFor, and has it return NULL or a AIPerService::Approvement object. The latter is now passed to the CurlEasyHandle object instead of just a boolean mQueueIfTooMuchBandwidthUsage, and then the Approvement is honored by the state machine right after the request is actually added to the command queue. This should avoid a flood of inventory requests in the case approveHTTPRequestFor is called multiple times before the main thread adds the requests to the command queue. I don't think that actually ever happens, but I added debug code (to find some problem) that is so damn strictly checking everything that I need to be this precise in order to do that testing.
This commit is contained in:
@@ -366,3 +366,9 @@ void AIPerService::Approvement::honored(void)
|
||||
}
|
||||
}
|
||||
|
||||
void AIPerService::Approvement::not_honored(void)
|
||||
{
|
||||
honored();
|
||||
llwarns << "Approvement for has not been honored." << llendl;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user