Got rid of a cumbersome open-close cycle with burn_read_data() on stdio:
This commit is contained in:
parent
83931e0442
commit
bcd939aefd
@ -1 +1 @@
|
||||
#define Cdrskin_timestamP "2008.02.28.132325"
|
||||
#define Cdrskin_timestamP "2008.03.03.202930"
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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.
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user