2
0
Fork 0

Got rid of a cumbersome open-close cycle with burn_read_data() on stdio:

Dieser Commit ist enthalten in:
Thomas Schmitt 2008-03-03 20:30:10 +00:00
Ursprung c1298d82a6
Commit 86d5bdfef8
4 geänderte Dateien mit 11 neuen und 3 gelöschten Zeilen

Datei anzeigen

@ -1 +1 @@
#define Cdrskin_timestamP "2008.02.28.132325"
#define Cdrskin_timestamP "2008.03.03.202930"

Datei anzeigen

@ -439,6 +439,9 @@ int burn_drive_mark_unready(struct burn_drive *d)
burn_disc_free(d->disc);
d->disc = NULL;
}
if (d->stdio_fd >= 0)
close (d->stdio_fd);
d->stdio_fd = -1;
return 1;
}

Datei anzeigen

@ -642,7 +642,7 @@ struct burn_speed_descriptor {
This must be called before using any other functions in the library. It
may be called more than once with no effect.
It is possible to 'restart' the library by shutting it down and
re-initializing it. This is necessary if you follow the older and
re-initializing it. Once this was necessary if you follow the older and
more general way of accessing a drive via burn_drive_scan() and
burn_drive_grab(). See burn_drive_scan_and_grab() with its strong
urges and its explanations.

Datei anzeigen

@ -388,7 +388,10 @@ int burn_read_data(struct burn_drive *d, off_t byte_address,
#define O_LARGEFILE 0
#endif
fd = open(d->devname, O_RDONLY | O_LARGEFILE);
fd = d->stdio_fd;
if (fd < 0)
d->stdio_fd = fd =
open(d->devname, O_RDONLY | O_LARGEFILE);
if (fd == -1) {
if (errno != ENOENT || !(flag & 2))
libdax_msgs_submit(libdax_messenger,
@ -478,8 +481,10 @@ int burn_read_data(struct burn_drive *d, off_t byte_address,
ret = 1;
ex:;
/* <<< let it open until drive is given up or writing shall happen
if (fd != -1)
close(fd);
*/
d->buffer = NULL;
d->busy = BURN_DRIVE_IDLE;
return ret;