projects
/
fio.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
t/dedupe: print dedupe ratio instead of made-up factor
[fio.git]
/
io_u_queue.h
diff --git
a/io_u_queue.h
b/io_u_queue.h
index 4f6e8e6a703b573e8f5c0d3e24fa397e090008e2..b702b1f3987578079ad67d42908feaf8f1093a79 100644
(file)
--- a/
io_u_queue.h
+++ b/
io_u_queue.h
@@
-12,8
+12,13
@@
struct io_u_queue {
static inline struct io_u *io_u_qpop(struct io_u_queue *q)
{
static inline struct io_u *io_u_qpop(struct io_u_queue *q)
{
- if (q->nr)
- return q->io_us[--q->nr];
+ if (q->nr) {
+ const unsigned int next = --q->nr;
+ struct io_u *io_u = q->io_us[next];
+
+ q->io_us[next] = NULL;
+ return io_u;
+ }
return NULL;
}
return NULL;
}
@@
-29,7
+34,7
@@
static inline int io_u_qempty(struct io_u_queue *q)
}
#define io_u_qiter(q, io_u, i) \
}
#define io_u_qiter(q, io_u, i) \
- for (i = 0
, io_u = (q)->io_us[0]; i < (q)->nr; i++, io_u = (q)->io_us[i]
)
+ for (i = 0
; i < (q)->nr && (io_u = (q)->io_us[i]); i++
)
int io_u_qinit(struct io_u_queue *q, unsigned int nr);
void io_u_qexit(struct io_u_queue *q);
int io_u_qinit(struct io_u_queue *q, unsigned int nr);
void io_u_qexit(struct io_u_queue *q);