extern "C" int closedir(DIR *dir) { int fd = dirfd(dir); if (dmtcp::ProtectedFDs::isProtected(fd)) { JTRACE("blocked attempt to closedir protected fd") (fd); errno = EBADF; return -1; } return _real_closedir(dir); }
extern "C" int closedir(DIR *dir) { int fd = dirfd(dir); if (DMTCP_IS_PROTECTED_FD(fd)) { JTRACE("blocked attempt to closedir protected fd") (fd); errno = EBADF; return -1; } return _real_closedir(dir); }
extern "C" int closedir(DIR *dir) { int fd = dirfd(dir); if (dmtcp_is_protected_fd(fd)) { JTRACE("blocked attempt to closedir protected fd") (fd); errno = EBADF; return -1; } DMTCP_DISABLE_CKPT(); int rv = _real_closedir(dir); if (rv == 0 && dmtcp_is_running_state()) { process_fd_event(SYS_close, fd); } DMTCP_ENABLE_CKPT(); return rv; }