added evnt_check funtion
[my-code/api.git] / event / event.c
index 398a1dd..2685168 100644 (file)
@@ -54,6 +54,7 @@ int event_start(t_event *event,void *ptr,
 
   int s_ret;
   struct timeval tv;
+  struct timeval *tv_ptr;
 
   /* switch on event system */
   event->status=ENABLED;
@@ -64,8 +65,11 @@ int event_start(t_event *event,void *ptr,
     event->wfds=event->wfds_o;
     tv=event->timeout;
 
+    if((tv.tv_sec==0)&&(tv.tv_usec==0)) tv_ptr=NULL;
+    else tv_ptr=&tv;
+
     if((s_ret=select(event->maxfd+1,&(event->rfds),&(event->wfds),NULL,
-                     &tv))==-1) {
+                     tv_ptr))==-1) {
       perror("[event] select call");
       return E_ERROR;
     }
@@ -89,6 +93,13 @@ int event_start(t_event *event,void *ptr,
   return E_SUCCESS;
 }
 
+int event_check(t_event *event,int fd) {
+
+  if(FD_ISSET(fd,&(event->wfds))|FD_ISSET(fd,&(event->rfds))) return E_FD_YES;
+  else return E_FD_NO;
+
+}
+
 int event_stop(t_event *event) {
 
   dprintf(event->outfd,"[event] shutdown\n");