Page MenuHomeFreeBSD

D32142.diff
No OneTemporary

D32142.diff

diff --git a/tests/sys/fs/fusefs/mockfs.hh b/tests/sys/fs/fusefs/mockfs.hh
--- a/tests/sys/fs/fusefs/mockfs.hh
+++ b/tests/sys/fs/fusefs/mockfs.hh
@@ -284,7 +284,7 @@
pthread_t m_daemon_id;
/* file descriptor of /dev/fuse control device */
- int m_fuse_fd;
+ volatile int m_fuse_fd;
/* The minor version of the kernel API that this mock daemon targets */
uint32_t m_kernel_minor_version;
diff --git a/tests/sys/fs/fusefs/mockfs.cc b/tests/sys/fs/fusefs/mockfs.cc
--- a/tests/sys/fs/fusefs/mockfs.cc
+++ b/tests/sys/fs/fusefs/mockfs.cc
@@ -870,6 +870,7 @@
struct timeval timeout_tv;
const int timeout_ms = 999;
int timeout_int, nfds;
+ int fuse_fd;
switch (m_pm) {
case BLOCKING:
@@ -906,19 +907,22 @@
ASSERT_TRUE(fds[0].revents & POLLIN);
break;
case SELECT:
+ fuse_fd = m_fuse_fd;
+ if (fuse_fd < 0)
+ break;
timeout_tv.tv_sec = 0;
timeout_tv.tv_usec = timeout_ms * 1'000;
- nfds = m_fuse_fd + 1;
+ nfds = fuse_fd + 1;
while (nready == 0) {
FD_ZERO(&readfds);
- FD_SET(m_fuse_fd, &readfds);
+ FD_SET(fuse_fd, &readfds);
nready = select(nfds, &readfds, NULL, NULL,
&timeout_tv);
if (m_quit)
return;
}
ASSERT_LE(0, nready) << strerror(errno);
- ASSERT_TRUE(FD_ISSET(m_fuse_fd, &readfds));
+ ASSERT_TRUE(FD_ISSET(fuse_fd, &readfds));
break;
default:
FAIL() << "not yet implemented";

File Metadata

Mime Type
text/plain
Expires
Mon, Sep 23, 10:28 PM (22 h, 5 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
12596014
Default Alt Text
D32142.diff (1 KB)

Event Timeline