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

Reply via email to