New option -sleep

This commit is contained in:
2011-10-14 09:43:30 +00:00
parent 65f88e429d
commit 622af5ca49
9 changed files with 104 additions and 44 deletions

View File

@ -691,7 +691,6 @@ int Xorriso_option_session_log(struct XorrisO *xorriso, char *path, int flag)
}
/* Option -setfacl_list alias -setfacl_listi */
int Xorriso_option_setfacl_listi(struct XorrisO *xorriso, char *path, int flag)
{
@ -1217,6 +1216,38 @@ int Xorriso_option_signal_handling(struct XorrisO *xorriso, char *mode,
}
/* Option -sleep */
int Xorriso_option_sleep(struct XorrisO *xorriso, char *duration, int flag)
{
double dur= 0.0, start_time, end_time, todo, granularity= 0.01;
unsigned long usleep_time;
sscanf(duration, "%lf", &dur);
start_time= Sfile_microtime(0);
end_time= start_time + dur;
Ftimetxt(time(NULL), xorriso->info_text, 6);
sprintf(xorriso->info_text + strlen(xorriso->info_text),
" : Will sleep for %f seconds", dur);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "UPDATE", 0);
while(1) {
todo= end_time - Sfile_microtime(0);
if(todo <= 0)
usleep_time= 0;
else if(todo > granularity)
usleep_time= granularity * 1.0e6;
else
usleep_time= todo * 1.0e6;
if(usleep_time == 0)
break;
usleep(usleep_time);
}
sprintf(xorriso->info_text, "Slept for %f seconds",
Sfile_microtime(0) - start_time);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "DEBUG", 0);
return(1);
}
/* Option -speed */
int Xorriso_option_speed(struct XorrisO *xorriso, char *speed, int flag)
{