On Tue, 24 Feb 2004 11:45:01 -0800 [EMAIL PROTECTED]
babbled:
> Enlightenment CVS committal
>
> Author : tsauerbeck
> Project : e17
> Module : libs/ecore
>
> Dir : e17/libs/ecore/src/lib/ecore
>
>
> Modified Files:
> Ecore.h ecore_main.c ecore_private.h
>
>
> Log Message:
> Added ECORE_FD_ERROR to go w/ ECORE_FD_READ AND _WRITE. I couldn't trigger the
> error 'event' though, which makes me wonder whether i missed
> something
i've read the patch and i don't see anything obvious as to why not. the only
thing i can imagine is the fd itself isn't generating exceptions for some
reason. i'm not really up on exception handling for fd's
===================================================================
> RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore/Ecore.h,v
> retrieving revision 1.4 retrieving revision 1.5
> diff -u -3 -r1.4 -r1.5
> --- Ecore.h 3 Feb 2004 19:49:46 -0000 1.4
> +++ Ecore.h 24 Feb 2004 19:45:01 -0000 1.5
> @@ -23,7 +23,8 @@
> enum _Ecore_Fd_Handler_Flags
> {
> ECORE_FD_READ = 1, /**< Fd Read mask */
> - ECORE_FD_WRITE = 2 /**< Fd Write mask */
> + ECORE_FD_WRITE = 2, /**< Fd Write mask */
> + ECORE_FD_ERROR = 4 /**< Fd Error mask */
> };
> typedef enum _Ecore_Fd_Handler_Flags Ecore_Fd_Handler_Flags;
>
> ===================================================================
> RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore/ecore_main.c,v
> retrieving revision 1.4
> retrieving revision 1.5
> diff -u -3 -r1.4 -r1.5
> --- ecore_main.c 20 Feb 2004 07:06:25 -0000 1.4
> +++ ecore_main.c 24 Feb 2004 19:45:01 -0000 1.5
> @@ -104,6 +104,7 @@
> fdh->flags = flags;
> fdh->read_active = 0;
> fdh->write_active = 0;
> + fdh->error_active = 0;
> fdh->delete_me = 0;
> fdh->func = func;
> fdh->data = (void *)data;
> @@ -182,6 +183,7 @@
> ret = 0;
> if ((flags & ECORE_FD_READ) && (fd_handler->read_active)) ret = 1;
> if ((flags & ECORE_FD_WRITE) && (fd_handler->write_active)) ret = 1;
> + if ((flags & ECORE_FD_ERROR) && (fd_handler->error_active)) ret = 1;
> return ret;
> }
>
> @@ -231,7 +233,7 @@
> _ecore_main_select(double timeout)
> {
> struct timeval tv, *t;
> - fd_set rfds, wfds;
> + fd_set rfds, wfds, exfds;
> int max_fd;
> int ret;
> Ecore_List *l;
> @@ -256,6 +258,7 @@
> max_fd = 0;
> FD_ZERO(&rfds);
> FD_ZERO(&wfds);
> + FD_ZERO(&exfds);
> for (l = (Ecore_List *)fd_handlers; l; l = l->next)
> {
> Ecore_Fd_Handler *fdh;
> @@ -271,9 +274,14 @@
> FD_SET(fdh->fd, &wfds);
> if (fdh->fd > max_fd) max_fd = fdh->fd;
> }
> + if (fdh->flags & ECORE_FD_ERROR)
> + {
> + FD_SET(fdh->fd, &exfds);
> + if (fdh->fd > max_fd) max_fd = fdh->fd;
> + }
> }
> if (_ecore_signal_count_get()) return -1;
> - ret = select(max_fd + 1, &rfds, &wfds, NULL, t);
> + ret = select(max_fd + 1, &rfds, &wfds, &exfds, t);
> if (ret < 0)
> {
> if (errno == EINTR) return -1;
> @@ -291,6 +299,8 @@
> fdh->read_active = 1;
> if (FD_ISSET(fdh->fd, &wfds))
> fdh->write_active = 1;
> + if (FD_ISSET(fdh->fd, &exfds))
> + fdh->error_active = 1;
> }
> }
> _ecore_main_fd_handlers_cleanup();
> @@ -333,7 +343,7 @@
> fdh = (Ecore_Fd_Handler *)l;
> if (!fdh->delete_me)
> {
> - if ((fdh->read_active) || (fdh->write_active))
> + if ((fdh->read_active) || (fdh->write_active) ||
> (fdh->error_active))
> {
> if (!fdh->func(fdh->data, fdh))
> {
> @@ -342,6 +352,7 @@
> }
> fdh->read_active = 0;
> fdh->write_active = 0;
> + fdh->error_active = 0;
> }
> }
> }
> ===================================================================
> RCS file:
> /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore/ecore_private.h,v
> retrieving revision 1.3 retrieving revision 1.4
> diff -u -3 -r1.3 -r1.4
> --- ecore_private.h 19 Jan 2004 19:31:21 -0000 1.3
> +++ ecore_private.h 24 Feb 2004 19:45:01 -0000 1.4
> @@ -38,7 +38,8 @@
> enum _Ecore_Fd_Handler_Flags
> {
> ECORE_FD_READ = 1,
> - ECORE_FD_WRITE = 2
> + ECORE_FD_WRITE = 2,
> + ECORE_FD_ERROR = 4
> };
> typedef enum _Ecore_Fd_Handler_Flags Ecore_Fd_Handler_Flags;
>
> @@ -97,6 +98,7 @@
> Ecore_Fd_Handler_Flags flags;
> int read_active : 1;
> int write_active : 1;
> + int error_active : 1;
> int delete_me : 1;
> int (*func) (void *data, Ecore_Fd_Handler *fd_handler);
> void *data;
>
>
>
>
> -------------------------------------------------------
> SF.Net is sponsored by: Speed Start Your Linux Apps Now.
> Build and deploy apps & Web services for Linux with
> a free DVD software kit from IBM. Click Now!
> http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click
> _______________________________________________
> enlightenment-cvs mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs
--
------------- Codito, ergo sum - "I code, therefore I am" --------------
The Rasterman (Carsten Haitzler) [EMAIL PROTECTED]
熊耳 - 車君 (数田) [EMAIL PROTECTED]
Tokyo, Japan (東京 日本)
-------------------------------------------------------
SF.Net is sponsored by: Speed Start Your Linux Apps Now.
Build and deploy apps & Web services for Linux with
a free DVD software kit from IBM. Click Now!
http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click
_______________________________________________
enlightenment-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel