projects
/
~madcoder
/
pwqr.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
improve tester
[~madcoder/pwqr.git]
/
lib
/
libpwqr.c
diff --git
a/lib/libpwqr.c
b/lib/libpwqr.c
index
1e1f681
..
5388137
100644
(file)
--- a/
lib/libpwqr.c
+++ b/
lib/libpwqr.c
@@
-70,7
+70,7
@@
static int pwqr_create(int flags)
{
static int pwqr_create(int flags)
{
- if (flags & ~
(O_NONBLOCK | O_CLOEXEC)
) {
+ if (flags & ~
PWQR_FL__SET
) {
errno = -EINVAL;
return -1;
}
errno = -EINVAL;
return -1;
}
@@
-82,16
+82,16
@@
static int pwqr_ctl(int fd, int op, int val, void *uaddr)
struct pwqr_ioc_wait wait;
switch (op) {
struct pwqr_ioc_wait wait;
switch (op) {
- case PWQR_GET_CONC:
- case PWQR_REGISTER:
- case PWQR_UNREGISTER:
- case PWQR_PARK:
+ case PWQR_
CTL_
GET_CONC:
+ case PWQR_
CTL_
REGISTER:
+ case PWQR_
CTL_
UNREGISTER:
+ case PWQR_
CTL_
PARK:
return ioctl(fd, op);
return ioctl(fd, op);
- case PWQR_SET_CONC:
- case PWQR_WAKE:
- case PWQR_WAKE_OC:
+ case PWQR_
CTL_
SET_CONC:
+ case PWQR_
CTL_
WAKE:
+ case PWQR_
CTL_
WAKE_OC:
return ioctl(fd, op, val);
return ioctl(fd, op, val);
- case PWQR_WAIT:
+ case PWQR_
CTL_
WAIT:
wait.pwqr_ticket = val;
wait.pwqr_uaddr = uaddr;
return ioctl(fd, op, &wait);
wait.pwqr_ticket = val;
wait.pwqr_uaddr = uaddr;
return ioctl(fd, op, &wait);
@@
-169,7
+169,7
@@
static ALWAYS_INLINE void pwqr_signal_n(int n)
atomic_add(&pwqr_g.ticket, 1);
#endif
if (atomic_fetch_and_add(&pwqr_g.waiters, 0))
atomic_add(&pwqr_g.ticket, 1);
#endif
if (atomic_fetch_and_add(&pwqr_g.waiters, 0))
- pwqr_ctl(pwqr_g.fd, PWQR_WAKE, n, NULL);
+ pwqr_ctl(pwqr_g.fd, PWQR_
CTL_
WAKE, n, NULL);
}
static ALWAYS_INLINE void pwqr_signal(void)
{
}
static ALWAYS_INLINE void pwqr_signal(void)
{
@@
-258,7
+258,7
@@
static int pwqr_do_wait(uint64_t ticket)
pthread_cleanup_push(&pwqr_do_wait_cleanup, NULL);
pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, &canceltype);
pthread_cleanup_push(&pwqr_do_wait_cleanup, NULL);
pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, &canceltype);
- rc = pwqr_ctl(pwqr_g.fd, PWQR_WAIT, ticket, &pwqr_g.lo);
+ rc = pwqr_ctl(pwqr_g.fd, PWQR_
CTL_
WAIT, ticket, &pwqr_g.lo);
if (rc < 0) {
if (errno == EINTR) {
rc = INPOOL;
if (rc < 0) {
if (errno == EINTR) {
rc = INPOOL;
@@
-299,7
+299,7
@@
static int pwqr_do_park(void)
run_job(job);
#endif
run_job(job);
#endif
- if ((rc = pwqr_ctl(pwqr_g.fd, PWQR_PARK, 0, NULL)) == 0) {
+ if ((rc = pwqr_ctl(pwqr_g.fd, PWQR_
CTL_
PARK, 0, NULL)) == 0) {
access_once(pwqr_g.overcommit_count) = 0;
if (atomic_fetch_and_sub(&pwqr_g.parked, 1) == 0) {
pwqr_spawn_thread(PARKED, 1);
access_once(pwqr_g.overcommit_count) = 0;
if (atomic_fetch_and_sub(&pwqr_g.parked, 1) == 0) {
pwqr_spawn_thread(PARKED, 1);
@@
-334,7
+334,7
@@
static void *pwqr_main(void *arg)
goto out;
pthread_cleanup_push(&pwqr_main_cleanup, NULL);
goto out;
pthread_cleanup_push(&pwqr_main_cleanup, NULL);
- if (pwqr_ctl(pwqr_g.fd, PWQR_REGISTER, 0, NULL) < 0)
+ if (pwqr_ctl(pwqr_g.fd, PWQR_
CTL_
REGISTER, 0, NULL) < 0)
goto out;
do {
goto out;
do {
@@
-400,7
+400,7
@@
static int _pthread_workqueue_init_np(void)
}
pwqr_g.fd = fd;
}
pwqr_g.fd = fd;
- n = pwqr_ctl(pwqr_g.fd, PWQR_GET_CONC, 0, NULL) + 4;
+ n = pwqr_ctl(pwqr_g.fd, PWQR_
CTL_
GET_CONC, 0, NULL) + 4;
pwqr_spawn_thread(INPOOL, n);
pwqr_spawn_thread(PARKED, 4);
pwqr_spawn_thread(INPOOL, n);
pwqr_spawn_thread(PARKED, 4);