From 6bf117656574521545694a1a4e5169755077631e Mon Sep 17 00:00:00 2001 From: fcolin Date: Wed, 19 Apr 2006 08:28:14 +0000 Subject: correction de probleme potentiel en multithread ( Ada rejeu ) ajout d'un warning en cas de client bloquant si la varaiable d'env IVY_DEBUG_SEND est positionne --- src/ivyloop.h | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) (limited to 'src/ivyloop.h') diff --git a/src/ivyloop.h b/src/ivyloop.h index c4af6eb..0696d40 100644 --- a/src/ivyloop.h +++ b/src/ivyloop.h @@ -36,9 +36,23 @@ extern "C" { #define HANDLE int #endif - - -extern void IvyMainLoop(void(*hook)(void) ); +/* +Boucle principale d'IVY baseé sur un select +les fonctions hook et unhook encradre le select +de la maniere suivante: + + BeforeSelect est appeler avant l'appel system select + AfterSelect est appeler avent l'appel system select + ces function peuvent utilisées pour depose un verrou dans le cas + d'utilisation de la mainloop Ivy dans une thread separe + + BeforeSelect ==> on libere l'acces avant la mise en attente sur le select + AfterSelect == > on verrouille l'acces en sortie du select + + !!!! Attention donc l'appel des callbacks ivy se fait avec l'acces verrouille ! +*/ + +extern void IvyMainLoop(void(*BeforeSelect)(void),void(*AfterSelect)(void) ); extern void IvyChannelInit(void); -- cgit v1.1 From 2cf893c0c34d50a68a27e1704b38f2facc10c9bc Mon Sep 17 00:00:00 2001 From: fcolin Date: Fri, 21 Apr 2006 15:51:55 +0000 Subject: suppression de l'indirection sur les fonction channel et renomage ! --- src/ivyloop.h | 10 ---------- 1 file changed, 10 deletions(-) (limited to 'src/ivyloop.h') diff --git a/src/ivyloop.h b/src/ivyloop.h index 0696d40..df99e41 100644 --- a/src/ivyloop.h +++ b/src/ivyloop.h @@ -55,16 +55,6 @@ de la maniere suivante: extern void IvyMainLoop(void(*BeforeSelect)(void),void(*AfterSelect)(void) ); -extern void IvyChannelInit(void); -extern void IvyChannelClose( Channel channel ); -extern Channel IvyChannelSetUp( - HANDLE fd, - void *data, - ChannelHandleDelete handle_delete, - ChannelHandleRead handle_read); - - - #ifdef __cplusplus } #endif -- cgit v1.1 From 53f1cd3c774bc45c09a1fe90f9d27a5c5feee785 Mon Sep 17 00:00:00 2001 From: fcolin Date: Wed, 28 Jun 2006 09:05:30 +0000 Subject: Modification API Hook sur IvyMainLoop --- src/ivyloop.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/ivyloop.h') diff --git a/src/ivyloop.h b/src/ivyloop.h index df99e41..f272212 100644 --- a/src/ivyloop.h +++ b/src/ivyloop.h @@ -52,8 +52,12 @@ de la maniere suivante: !!!! Attention donc l'appel des callbacks ivy se fait avec l'acces verrouille ! */ -extern void IvyMainLoop(void(*BeforeSelect)(void),void(*AfterSelect)(void) ); +extern void IvyMainLoop(void); +typedef void ( *IvyHookPtr) ( void *data ); + +extern void IvySetBeforeSelectHook(IvyHookPtr before, void *data ); +extern void IvySetAfterSelectHook(IvyHookPtr after, void *data ); #ifdef __cplusplus } -- cgit v1.1