X-Git-Url: https://hackdaworld.org/gitweb/?a=blobdiff_plain;f=event%2Fevent.c;h=268516836c3c7af8f3d57694a860a0d4cb35b47b;hb=46249e03c15b7882fe4bbbaf49c7997fca12761f;hp=e3d60abd979b3481967b7f28ce615d2963e629cd;hpb=163431149f68f6d8e50665d74e7e31c45d662698;p=my-code%2Fapi.git diff --git a/event/event.c b/event/event.c index e3d60ab..2685168 100644 --- a/event/event.c +++ b/event/event.c @@ -22,6 +22,14 @@ int event_init(t_event *event,int outfd) { return E_SUCCESS; } +int event_set_timeout(t_event *event,int sec,int usec) { + + event->timeout.tv_sec=sec; + event->timeout.tv_usec=usec; + + return E_SUCCESS; +} + int event_math(int fd,t_event *event,char rw,char ar) { if(ar==ADD) { @@ -46,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; @@ -56,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; } @@ -81,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");