projects
/
c11concurrency-benchmarks.git
/ blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
history
|
raw
|
HEAD
Add sleep statement for msqueue
[c11concurrency-benchmarks.git]
/
silo
/
fileutils.h
1
#pragma once
2
3
#include <unistd.h>
4
#include <errno.h>
5
6
class fileutils {
7
public:
8
9
static int
10
writeall(int fd, const char *buf, int n)
11
{
12
while (n) {
13
int r = write(fd, buf, n);
14
if (unlikely(r < 0))
15
return r;
16
buf += r;
17
n -= r;
18
}
19
return 0;
20
}
21
22
static int
23
readall(int fd, char *buf, int n)
24
{
25
while (n) {
26
int r = read(fd, buf, n);
27
if (r == 0)
28
return EOF;
29
if (r < 0) {
30
if (errno == EAGAIN || errno == EWOULDBLOCK || errno == EINTR)
31
continue;
32
return r;
33
}
34
buf += r;
35
n -= r;
36
}
37
return 0;
38
}
39
40
};