parent
4a514076ad
commit
26d8a50642
|
@ -66,8 +66,7 @@ struct _Ecore_Pipe
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
static int _ecore_pipe_read(void *data,
|
static int _ecore_pipe_read(void *data, Ecore_Fd_Handler *fd_handler);
|
||||||
Ecore_Fd_Handler *fd_handler);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @defgroup Ecore_Pipe_Group Pipe wrapper
|
* @defgroup Ecore_Pipe_Group Pipe wrapper
|
||||||
|
@ -289,12 +288,10 @@ ecore_pipe_add(void (*handler) (void *data, void *buffer, unsigned int nbyte),
|
||||||
Ecore_Pipe *p;
|
Ecore_Pipe *p;
|
||||||
int fds[2];
|
int fds[2];
|
||||||
|
|
||||||
if(!handler)
|
if (!handler) return NULL;
|
||||||
return NULL;
|
|
||||||
|
|
||||||
p = (Ecore_Pipe *)calloc(1, sizeof(Ecore_Pipe));
|
p = (Ecore_Pipe *)calloc(1, sizeof(Ecore_Pipe));
|
||||||
if (!p)
|
if (!p) return NULL;
|
||||||
return NULL;
|
|
||||||
|
|
||||||
if (pipe(fds))
|
if (pipe(fds))
|
||||||
{
|
{
|
||||||
|
@ -316,7 +313,6 @@ ecore_pipe_add(void (*handler) (void *data, void *buffer, unsigned int nbyte),
|
||||||
_ecore_pipe_read,
|
_ecore_pipe_read,
|
||||||
p,
|
p,
|
||||||
NULL, NULL);
|
NULL, NULL);
|
||||||
|
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -334,16 +330,12 @@ ecore_pipe_del(Ecore_Pipe *p)
|
||||||
|
|
||||||
if (!ECORE_MAGIC_CHECK(p, ECORE_MAGIC_PIPE))
|
if (!ECORE_MAGIC_CHECK(p, ECORE_MAGIC_PIPE))
|
||||||
{
|
{
|
||||||
ECORE_MAGIC_FAIL(p, ECORE_MAGIC_PIPE,
|
ECORE_MAGIC_FAIL(p, ECORE_MAGIC_PIPE, "ecore_pipe_del");
|
||||||
"ecore_pipe_del");
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
if(p->fd_handler != NULL)
|
if (p->fd_handler != NULL) ecore_main_fd_handler_del(p->fd_handler);
|
||||||
ecore_main_fd_handler_del(p->fd_handler);
|
if (p->fd_read != PIPE_FD_INVALID) pipe_close(p->fd_read);
|
||||||
if(p->fd_read != PIPE_FD_INVALID)
|
if (p->fd_write != PIPE_FD_INVALID) pipe_close(p->fd_write);
|
||||||
pipe_close(p->fd_read);
|
|
||||||
if(p->fd_write != PIPE_FD_INVALID)
|
|
||||||
pipe_close(p->fd_write);
|
|
||||||
data = (void *)p->data;
|
data = (void *)p->data;
|
||||||
free(p);
|
free(p);
|
||||||
return data;
|
return data;
|
||||||
|
@ -360,8 +352,7 @@ ecore_pipe_read_close(Ecore_Pipe *p)
|
||||||
{
|
{
|
||||||
if (!ECORE_MAGIC_CHECK(p, ECORE_MAGIC_PIPE))
|
if (!ECORE_MAGIC_CHECK(p, ECORE_MAGIC_PIPE))
|
||||||
{
|
{
|
||||||
ECORE_MAGIC_FAIL(p, ECORE_MAGIC_PIPE,
|
ECORE_MAGIC_FAIL(p, ECORE_MAGIC_PIPE, "ecore_pipe_read_close");
|
||||||
"ecore_pipe_read_close");
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
ecore_main_fd_handler_del(p->fd_handler);
|
ecore_main_fd_handler_del(p->fd_handler);
|
||||||
|
@ -381,8 +372,7 @@ ecore_pipe_write_close(Ecore_Pipe *p)
|
||||||
{
|
{
|
||||||
if (!ECORE_MAGIC_CHECK(p, ECORE_MAGIC_PIPE))
|
if (!ECORE_MAGIC_CHECK(p, ECORE_MAGIC_PIPE))
|
||||||
{
|
{
|
||||||
ECORE_MAGIC_FAIL(p, ECORE_MAGIC_PIPE,
|
ECORE_MAGIC_FAIL(p, ECORE_MAGIC_PIPE, "ecore_pipe_write_close");
|
||||||
"ecore_pipe_write_close");
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
pipe_close(p->fd_write);
|
pipe_close(p->fd_write);
|
||||||
|
@ -407,13 +397,11 @@ ecore_pipe_write(Ecore_Pipe *p, const void *buffer, unsigned int nbytes)
|
||||||
|
|
||||||
if (!ECORE_MAGIC_CHECK(p, ECORE_MAGIC_PIPE))
|
if (!ECORE_MAGIC_CHECK(p, ECORE_MAGIC_PIPE))
|
||||||
{
|
{
|
||||||
ECORE_MAGIC_FAIL(p, ECORE_MAGIC_PIPE,
|
ECORE_MAGIC_FAIL(p, ECORE_MAGIC_PIPE, "ecore_pipe_write");
|
||||||
"ecore_pipe_write");
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(p->fd_write == PIPE_FD_INVALID)
|
if (p->fd_write == PIPE_FD_INVALID) return FALSE;
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
/* First write the len into the pipe */
|
/* First write the len into the pipe */
|
||||||
do
|
do
|
||||||
|
@ -449,8 +437,7 @@ ecore_pipe_write(Ecore_Pipe *p, const void *buffer, unsigned int nbytes)
|
||||||
}
|
}
|
||||||
while (retry--);
|
while (retry--);
|
||||||
|
|
||||||
if (retry != ECORE_PIPE_WRITE_RETRY)
|
if (retry != ECORE_PIPE_WRITE_RETRY) return FALSE;
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
/* and now pass the data to the pipe */
|
/* and now pass the data to the pipe */
|
||||||
do
|
do
|
||||||
|
|
Loading…
Reference in New Issue