Reduced waiting time between retries of WRITE commands

This commit is contained in:
2011-12-30 14:27:45 +00:00
parent 8f725bab11
commit 4afaaf3fb6
4 changed files with 57 additions and 5 deletions

View File

@ -873,6 +873,30 @@ void mmc_write_12(struct burn_drive *d, int start, struct buffer *buf)
}
#ifdef Libburn_write_time_debuG
static int print_time(int flag)
{
static struct timeval prev = {0, 0};
struct timeval now;
struct timezone tz;
int ret, diff;
ret = gettimeofday(&now, &tz);
if (ret == -1)
return 0;
if (now.tv_sec - prev.tv_sec < Libburn_scsi_write_timeouT) {
diff = (now.tv_sec - prev.tv_sec) * 1000000 +
((int) (now.tv_usec) - (int) prev.tv_usec);
fprintf(stderr, "\nlibburn_DEBUG: %d.%-6d : %d\n", (int) now.tv_sec, (int) now.tv_usec, diff);
}
memcpy(&prev, &now, sizeof(struct timeval));
return 1;
}
#endif /* Libburn_write_time_debuG */
int mmc_write(struct burn_drive *d, int start, struct buffer *buf)
{
int cancelled;
@ -880,6 +904,10 @@ int mmc_write(struct burn_drive *d, int start, struct buffer *buf)
int len, key, asc, ascq;
char *msg = NULL;
#ifdef Libburn_write_time_debuG
extern int burn_sg_log_scsi;
#endif
c = &(d->casual_command);
#ifdef Libburn_log_in_and_out_streaM
@ -925,6 +953,11 @@ int mmc_write(struct burn_drive *d, int start, struct buffer *buf)
if(d->wait_for_buffer_free)
mmc_wait_for_buffer_free(d, buf);
#ifdef Libburn_write_time_debuG
if (burn_sg_log_scsi & 3)
print_time(0);
#endif
/* ts A80412 */
if(d->do_stream_recording > 0 && start >= d->stream_recording_start) {