added macro that takes care of boilerplate "check for timeout and return progress" code.
This was SVN commit r2242.
This commit is contained in:
parent
216eb8d2fe
commit
1bcf156680
@ -89,3 +89,19 @@ extern int LDR_ProgressiveLoad(double time_budget, wchar_t* next_description,
|
|||||||
// immediately process all queued load requests.
|
// immediately process all queued load requests.
|
||||||
// returns 0 on success, something else on failure.
|
// returns 0 on success, something else on failure.
|
||||||
extern int LDR_NonprogressiveLoad();
|
extern int LDR_NonprogressiveLoad();
|
||||||
|
|
||||||
|
|
||||||
|
// boilerplate check-if-timed-out and return-progress-percent code.
|
||||||
|
// completed_jobs and total_jobs are ints and must be updated by caller.
|
||||||
|
// assumes presence of a local variable (double)<end_time>
|
||||||
|
// (as returned by get_time()) that indicates the time at which to abort.
|
||||||
|
#define LDR_CHECK_TIMEOUT(completed_jobs, total_jobs)\
|
||||||
|
if(get_time() > end_time)\
|
||||||
|
{\
|
||||||
|
int progress_percent = (completed_jobs*100 / total_jobs);\
|
||||||
|
/* 0 means "finished", so don't return that! */\
|
||||||
|
if(progress_percent == 0)\
|
||||||
|
progress_percent = 1;\
|
||||||
|
assert2(0 < progress_percent && progress_percent <= 100);\
|
||||||
|
return progress_percent;\
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user