Adaptations to new test results and discussions
This commit is contained in:
parent
65f82d82ab
commit
1e860e6536
@ -154,7 +154,8 @@ device files with combinations of read-write, O_EXCL, and fcntl().
|
|||||||
(This does not mean that Ted endorsed our project yet. He helps exploring.)
|
(This does not mean that Ted endorsed our project yet. He helps exploring.)
|
||||||
|
|
||||||
Friendly in the sense of DDLP-A would be any run which uses at least one of
|
Friendly in the sense of DDLP-A would be any run which uses at least one of
|
||||||
the options -e (i.e. O_EXCL) or -f (i.e. F_SETLK).
|
the options -e (i.e. O_EXCL) or -f (i.e. F_SETLK, applied to a file
|
||||||
|
descriptor which was obtained from a standard device file path).
|
||||||
The code is available under GPL at
|
The code is available under GPL at
|
||||||
http://libburnia.pykix.org/browser/libburn/trunk/test/open-cd-excl.c?format=txt
|
http://libburnia.pykix.org/browser/libburn/trunk/test/open-cd-excl.c?format=txt
|
||||||
To be compiled by
|
To be compiled by
|
||||||
|
@ -109,16 +109,10 @@ int main(int argc, char **argv)
|
|||||||
printf("fcntl lock apparently %sLOCKED\n",
|
printf("fcntl lock apparently %sLOCKED\n",
|
||||||
(fl.l_type == F_UNLCK) ? "NOT " : "");
|
(fl.l_type == F_UNLCK) ? "NOT " : "");
|
||||||
|
|
||||||
/* ts A70418: do not try to lock if it is already locked */
|
|
||||||
if (fl.l_type != F_UNLCK) {
|
|
||||||
printf("failed\n");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
init_flock(&fl, do_rdwr);
|
init_flock(&fl, do_rdwr);
|
||||||
printf("Trying to grab fcntl lock...\n");
|
printf("Trying to grab fcntl lock...\n");
|
||||||
if (fcntl(fd, F_SETLKW, &fl) < 0) {
|
if (fcntl(fd, F_SETLK, &fl) < 0) {
|
||||||
perror("fcntl: F_SETLKW: ");
|
perror("fcntl: F_SETLK: ");
|
||||||
printf("failed\n");
|
printf("failed\n");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
@ -127,6 +121,7 @@ int main(int argc, char **argv)
|
|||||||
|
|
||||||
/* ts A70417: added end_immediately */
|
/* ts A70417: added end_immediately */
|
||||||
printf("Holding %s open.\n", device_name);
|
printf("Holding %s open.\n", device_name);
|
||||||
|
usleep(100000);
|
||||||
if (end_immediately)
|
if (end_immediately)
|
||||||
exit(0);
|
exit(0);
|
||||||
printf("Press ^C to exit.\n");
|
printf("Press ^C to exit.\n");
|
||||||
|
Loading…
Reference in New Issue
Block a user