# define pipe_write(fd, buffer, size) send((fd), (char *)(buffer), size, 0)
# define pipe_read(fd, buffer, size) recv((fd), (char *)(buffer), size, 0)
+# define pipe_close(fd) closesocket(fd)
+# define PIPE_FD_INVALID INVALID_SOCKET
+# define PIPE_FD_ERROR SOCKET_ERROR
#else
# define pipe_write(fd, buffer, size) write((fd), buffer, size)
# define pipe_read(fd, buffer, size) read((fd), buffer, size)
+# define pipe_close(fd) close(fd)
+# define pipe_fd_invalid -1
+# define PIPE_FD_ERROR -1
#endif /* ! _WIN32 */
}
if(p->fd_handler != NULL)
ecore_main_fd_handler_del(p->fd_handler);
- if(p->fd_read != -1)
- close(p->fd_read);
- if(p->fd_write != -1)
- close(p->fd_write);
+ if(p->fd_read != PIPE_FD_INVALID)
+ pipe_close(p->fd_read);
+ if(p->fd_write != PIPE_FD_INVALID)
+ pipe_close(p->fd_write);
data = (void *)p->data;
free (p);
return data;
}
ecore_main_fd_handler_del(p->fd_handler);
p->fd_handler = NULL;
- close(p->fd_read);
- p->fd_read = -1;
+ pipe_close(p->fd_read);
+ p->fd_read = PIPE_FD_INVALID;
}
/**
"ecore_pipe_write_close");
return;
}
- close(p->fd_write);
- p->fd_write = -1;
+ pipe_close(p->fd_write);
+ p->fd_write = PIPE_FD_INVALID;
}
/**
return FALSE;
}
- if(p->fd_write == -1)
+ if(p->fd_write == PIPE_FD_INVALID)
return FALSE;
/* First write the len into the pipe */
" to the pipe\n");
return FALSE;
}
- else if (ret == -1 && errno == EPIPE)
+ else if (ret == PIPE_FD_ERROR && errno == EPIPE)
{
- close(p->fd_write);
- p->fd_write = -1;
+ pipe_close(p->fd_write);
+ p->fd_write = PIPE_FD_INVALID;
return FALSE;
}
- else if (ret == -1 && errno == EINTR)
+ else if (ret == PIPE_FD_ERROR && errno == EINTR)
/* try it again */
;
else
already_written -= ret;
continue;
}
- else if (ret == -1 && errno == EPIPE)
+ else if (ret == PIPE_FD_ERROR && errno == EPIPE)
{
- close(p->fd_write);
- p->fd_write = -1;
+ pipe_close(p->fd_write);
+ p->fd_write = PIPE_FD_INVALID;
return FALSE;
}
- else if (ret == -1 && errno == EINTR)
+ else if (ret == PIPE_FD_ERROR && errno == EINTR)
/* try it again */
;
else
else if (ret == 0)
{
p->handler((void *)p->data, NULL, 0);
- close(p->fd_read);
- p->fd_read = -1;
+ pipe_close(p->fd_read);
+ p->fd_read = PIPE_FD_INVALID;
p->fd_handler = NULL;
return ECORE_CALLBACK_CANCEL;
}
- else if ((ret == -1) && ((errno == EINTR) || (errno == EAGAIN)))
+ else if ((ret == PIPE_FD_ERROR) && ((errno == EINTR) || (errno == EAGAIN)))
return ECORE_CALLBACK_RENEW;
else
{
else if (ret == 0)
{
p->handler((void *)p->data, NULL, 0);
- close(p->fd_read);
- p->fd_read = -1;
+ pipe_close(p->fd_read);
+ p->fd_read = PIPE_FD_INVALID;
p->fd_handler = NULL;
return ECORE_CALLBACK_CANCEL;
}
- else if (ret == -1 && (errno == EINTR || errno == EAGAIN))
+ else if (ret == PIPE_FD_ERROR && (errno == EINTR || errno == EAGAIN))
return ECORE_CALLBACK_RENEW;
else
{