xref: /haiku/src/system/libroot/posix/sys/flock.c (revision 25a7b01d15612846f332751841da3579db313082)
1a32a4683SAxel Dörfler /*
2a32a4683SAxel Dörfler  * Copyright 2008, Axel Dörfler, axeld@pinc-software.de. All rights reserved.
3a32a4683SAxel Dörfler  * Distributed under the terms of the MIT License.
4a32a4683SAxel Dörfler  */
5a32a4683SAxel Dörfler 
6a32a4683SAxel Dörfler 
7a32a4683SAxel Dörfler #include <sys/file.h>
824df6592SIngo Weinhold 
9a32a4683SAxel Dörfler #include <errno.h>
1024df6592SIngo Weinhold #include <pthread.h>
1124df6592SIngo Weinhold 
12*ae901935SOliver Tappe #include <errno_private.h>
1324df6592SIngo Weinhold #include <syscalls.h>
14a32a4683SAxel Dörfler 
15a32a4683SAxel Dörfler 
16a32a4683SAxel Dörfler int
flock(int fd,int op)17a32a4683SAxel Dörfler flock(int fd, int op)
18a32a4683SAxel Dörfler {
19a32a4683SAxel Dörfler 	status_t status = _kern_flock(fd, op);
2024df6592SIngo Weinhold 
2124df6592SIngo Weinhold 	pthread_testcancel();
2224df6592SIngo Weinhold 
23a32a4683SAxel Dörfler 	if (status < B_OK) {
24*ae901935SOliver Tappe 		__set_errno(status);
25a32a4683SAxel Dörfler 		return -1;
26a32a4683SAxel Dörfler 	}
27a32a4683SAxel Dörfler 
28a32a4683SAxel Dörfler 	return 0;
29a32a4683SAxel Dörfler }
30a32a4683SAxel Dörfler 
31