[Spread-cvs] commit: r593 - in branches/experimental-4.3-threaded: daemon libspread-util/include libspread-util/src
jschultz at spread.org
jschultz at spread.org
Thu Sep 26 16:30:23 EDT 2013
Author: jschultz
Date: 2013-09-26 16:30:23 -0400 (Thu, 26 Sep 2013)
New Revision: 593
Modified:
branches/experimental-4.3-threaded/daemon/protocol.h
branches/experimental-4.3-threaded/daemon/session.c
branches/experimental-4.3-threaded/daemon/session.h
branches/experimental-4.3-threaded/libspread-util/include/spu_events.h
branches/experimental-4.3-threaded/libspread-util/include/spu_objects.h
branches/experimental-4.3-threaded/libspread-util/include/spu_objects_local.h
branches/experimental-4.3-threaded/libspread-util/src/events.c
Log:
Changed events code to expose global event loop and allow for a single threaded version of Spread to use that for both session and protocol code.
Change session queue to contain a typed object that is then processed in Sess_process_message (might want to change name).
Make copies of reg and trans memberships and pass them onto the session queue.
Added new memory types for OBJ_LINK and MEMB_OBJ.
Made protocol.h and session.h not circularly refer to one another.
Modified: branches/experimental-4.3-threaded/daemon/protocol.h
===================================================================
--- branches/experimental-4.3-threaded/daemon/protocol.h 2013-09-23 18:39:16 UTC (rev 592)
+++ branches/experimental-4.3-threaded/daemon/protocol.h 2013-09-26 20:30:23 UTC (rev 593)
@@ -38,14 +38,19 @@
#include "arch.h"
#include "scatter.h"
-#include "session.h"
+#include "prot_objs.h"
+#include "configuration.h"
+struct session;
+
typedef struct dummy_down_link {
int32 type;
scatter *mess;
struct dummy_down_link *next;
} down_link;
+typedef down_link obj_link;
+
typedef struct dummy_down_queue {
int num_mess;
int cur_element;
@@ -60,8 +65,8 @@
void Prot_set_down_queue( int queue_type );
void Prot_new_message( down_link *down_ptr, int not_used_in_spread3_p );
void Prot_init_down_queues(void);
-void Prot_Create_Local_Session(session *new_sess);
-void Prot_Destroy_Local_Session(session *old_sess);
+void Prot_Create_Local_Session(struct session *new_sess);
+void Prot_Destroy_Local_Session(struct session *old_sess);
down_link *Prot_Create_Down_Link(message_obj *msg, int type, int mbox, int cur_element);
void Prot_kill_session(message_obj *msg);
void Prot_set_prev_proc(configuration *memb);
Modified: branches/experimental-4.3-threaded/daemon/session.c
===================================================================
--- branches/experimental-4.3-threaded/daemon/session.c 2013-09-23 18:39:16 UTC (rev 592)
+++ branches/experimental-4.3-threaded/daemon/session.c 2013-09-26 20:30:23 UTC (rev 593)
@@ -89,6 +89,13 @@
#include "stdutil/stderror.h"
+typedef struct
+{
+ configuration memb;
+ membership_id memb_id;
+
+} memb_obj;
+
static sp_time Badger_timeout = { 0, 100000 };
static message_obj New_mess;
@@ -109,12 +116,16 @@
#include "signal_queues.h"
static signal_q Daemon_Sess_Q;
-static E_events Session_Events;
+static E_events *Session_Events = NULL;
+
+#ifdef _REENTRANT
+static E_events Session_Events_Impl;
static stdthread Session_Thread;
static stdthread_id Session_Thread_ID;
+#endif
static void Sess_process_daemon_q(int dmy_fd, int dmy_code, void *dmy_ptr);
-static void Sess_process_message(message_link *mess_link);
+static void Sess_process_message(obj_link *mess_link);
static void Sess_attach_accept(void);
static void Sess_detach_accept(void);
static void Sess_recv_client_auth(mailbox mbox, int dummy, void *dummy_p);
@@ -132,20 +143,24 @@
static void Sess_create_reject_message ( message_obj *msg );
static int Sess_get_p2p_dests( int num_groups, char groups[][MAX_GROUP_NAME], char dests[][MAX_GROUP_NAME] );
+#ifdef _REENTRANT
static void * STDTHREAD_FCN Sess_run(void *arg)
{
E_events_handle_events(&Session_Events);
return NULL;
}
+#endif
void Sess_spawn(void)
{
+#ifdef _REENTRANT
stdcode code;
if ((code = stdthread_spawn(&Session_Thread, &Session_Thread_ID, Sess_run, NULL))) {
Alarm(EXIT, "Sess_spawn: spawning session thread failed; code = %d; error = '%s'\n", code, stderr_strerr(code));
}
+#endif
}
static void Sess_activate_port_reuse(mailbox mbox)
@@ -361,14 +376,27 @@
}
ret = Mem_init_object( DOWN_LINK, "down_link", sizeof(down_link), 200, 0);
+ /*ret = Mem_init_object( OBJ_LINK, "obj_link", sizeof(obj_link), 200, 0); NOTE: OBJ_LINK is a DOWN_LINK */
if (ret < 0)
{
Alarm(EXIT, "Sess_init: Failure to Initialize DOWN_LINK memory objects\n");
}
- if (E_events_init(&Session_Events)) {
+ ret = Mem_init_object( MEMB_OBJ, "memb_obj", sizeof(memb_obj), 200, 0);
+ if (ret < 0)
+ {
+ Alarm(EXIT, "Sess_init: Failure to Initialize MEMB_OBJ memory objects\n");
+ }
+
+#ifndef _REENTRANT
+ Session_Events = &G_Events;
+#else
+ Session_Events = &Session_Events_Impl;
+
+ if (E_events_init(Session_Events)) {
Alarm(EXIT, "Sess_init: E_events_init failure!\n");
}
+#endif
Sess_init_sessions ();
@@ -469,7 +497,7 @@
Signal_Q_init(&Daemon_Sess_Q, sizeof(message_link*)); /* ### Testing queues */
- E_events_attach_fd( &Session_Events, Daemon_Sess_Q.q_pipe[0], READ_FD, Sess_process_daemon_q, 0, 0, HIGH_PRIORITY );
+ E_events_attach_fd( Session_Events, Daemon_Sess_Q.q_pipe[0], READ_FD, Sess_process_daemon_q, 0, 0, HIGH_PRIORITY );
Alarm( SESSION, "Sess_init: ended ok\n" );
}
@@ -529,12 +557,12 @@
int i;
for ( i=0; i < Accept_inet_mbox_num; i++)
{
- E_events_attach_fd( &Session_Events, Accept_inet_mbox[i], READ_FD, Sess_accept, AF_INET, NULL, LOW_PRIORITY );
- E_events_attach_fd( &Session_Events, Accept_inet_mbox[i], EXCEPT_FD, Sess_accept, AF_INET, NULL, LOW_PRIORITY );
+ E_events_attach_fd( Session_Events, Accept_inet_mbox[i], READ_FD, Sess_accept, AF_INET, NULL, LOW_PRIORITY );
+ E_events_attach_fd( Session_Events, Accept_inet_mbox[i], EXCEPT_FD, Sess_accept, AF_INET, NULL, LOW_PRIORITY );
}
#ifndef ARCH_PC_WIN95
- E_events_attach_fd( &Session_Events, Accept_unix_mbox, READ_FD, Sess_accept, AF_UNIX, NULL, LOW_PRIORITY );
+ E_events_attach_fd( Session_Events, Accept_unix_mbox, READ_FD, Sess_accept, AF_UNIX, NULL, LOW_PRIORITY );
#endif /* ARCH_PC_WIN95 */
@@ -545,12 +573,12 @@
int i;
for (i=0; i < Accept_inet_mbox_num; i++)
{
- E_events_detach_fd( &Session_Events, Accept_inet_mbox[i], READ_FD );
- E_events_detach_fd( &Session_Events, Accept_inet_mbox[i], EXCEPT_FD );
+ E_events_detach_fd( Session_Events, Accept_inet_mbox[i], READ_FD );
+ E_events_detach_fd( Session_Events, Accept_inet_mbox[i], EXCEPT_FD );
}
#ifndef ARCH_PC_WIN95
- E_events_detach_fd( &Session_Events, Accept_unix_mbox, READ_FD );
+ E_events_detach_fd( Session_Events, Accept_unix_mbox, READ_FD );
#endif /* ARCH_PC_WIN95 */
@@ -653,11 +681,11 @@
}
/* delaying for the private name to be written */
Sess_detach_accept();
- E_events_attach_fd( &Session_Events, Sessions[MAX_SESSIONS].mbox, READ_FD, Sess_accept_continue, 0, NULL, LOW_PRIORITY );
- E_events_attach_fd( &Session_Events, Sessions[MAX_SESSIONS].mbox, EXCEPT_FD, Sess_accept_continue, 0, NULL, LOW_PRIORITY );
+ E_events_attach_fd( Session_Events, Sessions[MAX_SESSIONS].mbox, READ_FD, Sess_accept_continue, 0, NULL, LOW_PRIORITY );
+ E_events_attach_fd( Session_Events, Sessions[MAX_SESSIONS].mbox, EXCEPT_FD, Sess_accept_continue, 0, NULL, LOW_PRIORITY );
accept_delay.sec = 1;
accept_delay.usec= 0;
- E_events_queue( &Session_Events, Sess_accept_continue2, 1, NULL, accept_delay, LOW_PRIORITY);
+ E_events_queue( Session_Events, Sess_accept_continue2, 1, NULL, accept_delay, LOW_PRIORITY);
}
void Sess_accept_continue(mailbox d1, int d2, void *d3)
@@ -675,9 +703,9 @@
unsigned char list_len;
session *tmp_ses;
- E_events_dequeue( &Session_Events, Sess_accept_continue2, 1, NULL );
- E_events_detach_fd( &Session_Events, Sessions[MAX_SESSIONS].mbox, READ_FD );
- E_events_detach_fd( &Session_Events, Sessions[MAX_SESSIONS].mbox, EXCEPT_FD );
+ E_events_dequeue( Session_Events, Sess_accept_continue2, 1, NULL );
+ E_events_detach_fd( Session_Events, Sessions[MAX_SESSIONS].mbox, READ_FD );
+ E_events_detach_fd( Session_Events, Sessions[MAX_SESSIONS].mbox, EXCEPT_FD );
Sess_attach_accept();
/* set file descriptor to non blocking */
@@ -901,8 +929,8 @@
}
/* Now wait for client reply */
- E_events_attach_fd( &Session_Events, Sessions[sess_location].mbox, READ_FD, Sess_recv_client_auth, 0, NULL, LOW_PRIORITY );
- E_events_attach_fd( &Session_Events, Sessions[sess_location].mbox, EXCEPT_FD, Sess_recv_client_auth, 0, NULL, LOW_PRIORITY );
+ E_events_attach_fd( Session_Events, Sessions[sess_location].mbox, READ_FD, Sess_recv_client_auth, 0, NULL, LOW_PRIORITY );
+ E_events_attach_fd( Session_Events, Sessions[sess_location].mbox, EXCEPT_FD, Sess_recv_client_auth, 0, NULL, LOW_PRIORITY );
}
static void Sess_recv_client_auth(mailbox mbox, int dummy, void *dummy_p)
@@ -922,8 +950,8 @@
Alarm( EXIT, "Sess_recv_client_auth: BUG! Session is already authorized (status 0x%x)\n", Sessions[ses].status);
}
- E_events_detach_fd(&Session_Events, mbox, READ_FD);
- E_events_detach_fd(&Session_Events, mbox, EXCEPT_FD);
+ E_events_detach_fd(Session_Events, mbox, READ_FD);
+ E_events_detach_fd(Session_Events, mbox, EXCEPT_FD);
/* set file descriptor to non blocking */
ioctl_cmd = 1;
@@ -1104,9 +1132,9 @@
/* sending the private group name */
send( Sessions[ses].mbox, private_group_name, name_len, 0 );
- E_events_attach_fd( &Session_Events, Sessions[ses].mbox, READ_FD, Sess_read, Sessions[ses].type, NULL,
+ E_events_attach_fd( Session_Events, Sessions[ses].mbox, READ_FD, Sess_read, Sessions[ses].type, NULL,
LOW_PRIORITY );
- E_events_attach_fd( &Session_Events, Sessions[ses].mbox, EXCEPT_FD, Sess_read, Sessions[ses].type, NULL,
+ E_events_attach_fd( Session_Events, Sessions[ses].mbox, EXCEPT_FD, Sess_read, Sessions[ses].type, NULL,
LOW_PRIORITY );
Sessions[ses].status = Set_op_session( Sessions[ses].status );
@@ -1498,10 +1526,10 @@
}
/* close the mailbox and mark it unoperational */
- E_events_dequeue( &Session_Events, Sess_badger_TO, mbox, NULL );
- E_events_detach_fd( &Session_Events, mbox, READ_FD );
- E_events_detach_fd( &Session_Events, mbox, EXCEPT_FD );
- E_events_detach_fd( &Session_Events, mbox, WRITE_FD );
+ E_events_dequeue( Session_Events, Sess_badger_TO, mbox, NULL );
+ E_events_detach_fd( Session_Events, mbox, READ_FD );
+ E_events_detach_fd( Session_Events, mbox, EXCEPT_FD );
+ E_events_detach_fd( Session_Events, mbox, WRITE_FD );
close( mbox );
/* the mailbox is closed but the entry still points to it */
Sessions[ses].status = Clear_op_session( Sessions[ses].status );
@@ -1699,8 +1727,8 @@
Message_calculate_current_location(tmp_link->mess, len_sent, &(Sessions[ses].write) );
/* We will need to badger this guy */
- E_events_queue( &Session_Events, Sess_badger_TO, Sessions[ses].mbox, NULL, Badger_timeout, LOW_PRIORITY );
- E_events_attach_fd( &Session_Events, Sessions[ses].mbox, WRITE_FD, Sess_badger_FD, 0, NULL, LOW_PRIORITY );
+ E_events_queue( Session_Events, Sess_badger_TO, Sessions[ses].mbox, NULL, Badger_timeout, LOW_PRIORITY );
+ E_events_attach_fd( Session_Events, Sessions[ses].mbox, WRITE_FD, Sess_badger_FD, 0, NULL, LOW_PRIORITY );
}else{
/* This guy was already badgered */
Sessions[ses].last->next = tmp_link;
@@ -1793,13 +1821,13 @@
ret = ioctl( mbox, FIONBIO, &ioctl_cmd);
if( Sessions[ses].num_mess > 0 ) {
- E_events_queue( &Session_Events, Sess_badger_TO, mbox, NULL, Badger_timeout, LOW_PRIORITY);
- E_events_attach_fd( &Session_Events, mbox, WRITE_FD, Sess_badger_FD, 0, NULL, LOW_PRIORITY );
+ E_events_queue( Session_Events, Sess_badger_TO, mbox, NULL, Badger_timeout, LOW_PRIORITY);
+ E_events_attach_fd( Session_Events, mbox, WRITE_FD, Sess_badger_FD, 0, NULL, LOW_PRIORITY );
}else{
NO_WORK:
- E_events_dequeue( &Session_Events, Sess_badger_TO, mbox, NULL );
- E_events_detach_fd( &Session_Events, mbox, WRITE_FD );
+ E_events_dequeue( Session_Events, Sess_badger_TO, mbox, NULL );
+ E_events_detach_fd( Session_Events, mbox, WRITE_FD );
}
}
@@ -1872,10 +1900,10 @@
Sessions[ses].read_mess = NULL;
/* close the mailbox and mark it unoperational */
- E_events_dequeue( &Session_Events, Sess_badger_TO, mbox, NULL );
- E_events_detach_fd( &Session_Events, mbox, READ_FD );
- E_events_detach_fd( &Session_Events, mbox, EXCEPT_FD );
- E_events_detach_fd( &Session_Events, mbox, WRITE_FD );
+ E_events_dequeue( Session_Events, Sess_badger_TO, mbox, NULL );
+ E_events_detach_fd( Session_Events, mbox, READ_FD );
+ E_events_detach_fd( Session_Events, mbox, EXCEPT_FD );
+ E_events_detach_fd( Session_Events, mbox, WRITE_FD );
close(mbox);
/* the mailbox is closed but the entry still points to it */
Sessions[ses].status = Clear_op_session( Sessions[ses].status );
@@ -1884,12 +1912,23 @@
void Sess_deliver_message( message_link *mess_link ) /* typically, but not always, called by protocol thread */
{
- Signal_Q_enqueue(&Daemon_Sess_Q, &mess_link);
+ obj_link *obj = new(OBJ_LINK);
+
+ if (obj == NULL) {
+ Alarm(EXIT, "Sess_deliver_message: failure to create obj_link\n");
+ }
+
+ obj->type = REGULAR_MESS;
+ obj->mess = (message_obj*) mess_link;
+ obj->next = NULL;
+
+ Signal_Q_enqueue(&Daemon_Sess_Q, &obj);
}
static void Sess_process_daemon_q(int fd, int dmy_code, void *dmy_ptr)
{
Signal_Q_process(&Daemon_Sess_Q, (void(*)(void*)) Sess_process_message);
+
#if 0
stdit it;
char buf;
@@ -1917,9 +1956,10 @@
#endif
}
-static void Sess_process_message( message_link *mess_link )
+static void Sess_process_message( obj_link *obj_link )
{
static int target_sessions[MAX_SESSIONS];
+ message_link *mess_link = (message_link*) obj_link->mess;
int num_target_sessions;
int source_ses;
message_header *head_ptr;
@@ -1931,6 +1971,24 @@
int needed;
int i;
+ if (obj_link->type == REG_MEMB_MESS) {
+ memb_obj *m = (memb_obj*) obj_link->mess;
+
+ G_handle_reg_memb( m->memb, m->memb_id );
+ dispose(m->memb.allprocs);
+ goto END;
+ }
+
+ if (obj_link->type == TRANSITION_MESS) {
+ memb_obj *t = (memb_obj*) obj_link->mess;
+
+ G_handle_trans_memb( t->memb, t->memb_id );
+ dispose(t->memb.allprocs);
+ goto END;
+ }
+
+ assert(obj_link->type == REGULAR_MESS);
+
msg = mess_link->mess;
Obj_Inc_Refcount(msg);
head_ptr = Message_get_message_header(msg);
@@ -1941,28 +1999,28 @@
{
Sess_handle_join( mess_link );
Message_Dec_Refcount(msg);
- return;
+ goto END;
}
if( Is_leave_mess( head_ptr->type ) )
{
Sess_handle_leave( mess_link );
Message_Dec_Refcount(msg);
- return;
+ goto END;
}
if( Is_kill_mess( head_ptr->type ) )
{
Sess_handle_kill( mess_link );
Message_Dec_Refcount(msg);
- return;
+ goto END;
}
if( Is_groups_mess( head_ptr->type ) )
{
G_handle_groups( mess_link );
Message_Dec_Refcount(msg);
- return;
+ goto END;
}
/* regular message */
@@ -2002,21 +2060,59 @@
Message_Dec_Refcount(msg);
if( !needed ) Sess_dispose_message( mess_link );
+
+ END:
+ dispose(obj_link);
}
-/* ### Sess_deliver_reg_memb and Sess_deliver_trans_memb may need to be changed to
- * enqueue messages */
+void Sess_deliver_reg_memb( configuration reg_memb, membership_id reg_memb_id )
+{
+ obj_link *obj = new(OBJ_LINK);
+ memb_obj *m = new(MEMB_OBJ);
-/* TODO: FIX ME*/
+ if (obj == NULL || m == NULL) {
+ Alarm(EXIT, "Sess_deliver_reg_memb: failed to create object!\n");
+ }
-void Sess_deliver_reg_memb( configuration reg_memb, membership_id reg_memb_id )
-{
- G_handle_reg_memb( reg_memb, reg_memb_id );
+ m->memb.allprocs = Mem_alloc( MAX_PROCS_RING * sizeof( proc ) );
+
+ if (m->memb.allprocs == NULL) {
+ Alarm(EXIT, "Sess_deliver_reg_memb: failed to create allprocs!\n");
+ }
+
+ Conf_config_copy(®_memb, &m->memb);
+ m->memb_id = reg_memb_id;
+
+ obj->type = REG_MEMB_MESS;
+ obj->mess = (message_obj*) m;
+ obj->next = NULL;
+
+ Signal_Q_enqueue(&Daemon_Sess_Q, &obj);
}
void Sess_deliver_trans_memb( configuration trans_memb, membership_id trans_memb_id )
{
- G_handle_trans_memb( trans_memb, trans_memb_id );
+ obj_link *obj = new(OBJ_LINK);
+ memb_obj *t = new(MEMB_OBJ);
+
+ if (obj == NULL || t == NULL) {
+ Alarm(EXIT, "Sess_deliver_trans_memb: failed to create object!\n");
+ }
+
+ t->memb.allprocs = Mem_alloc( MAX_PROCS_RING * sizeof( proc ) );
+
+ if (t->memb.allprocs == NULL) {
+ Alarm(EXIT, "Sess_deliver_trans_memb: failed to create allprocs!\n");
+ }
+
+ Conf_config_copy(&trans_memb, &t->memb);
+ t->memb_id = trans_memb_id;
+
+ obj->type = TRANSITION_MESS;
+ obj->mess = (message_obj*) t;
+ obj->next = NULL;
+
+ Signal_Q_enqueue(&Daemon_Sess_Q, &obj);
}
static void Sess_handle_join( message_link *mess_link )
Modified: branches/experimental-4.3-threaded/daemon/session.h
===================================================================
--- branches/experimental-4.3-threaded/daemon/session.h 2013-09-23 18:39:16 UTC (rev 592)
+++ branches/experimental-4.3-threaded/daemon/session.h 2013-09-26 20:30:23 UTC (rev 593)
@@ -42,6 +42,7 @@
#include "prot_objs.h"
#include "sess_types.h"
#include "acm.h"
+#include "protocol.h"
typedef struct dummy_message_link {
message_obj *mess;
@@ -55,7 +56,7 @@
int total_bytes;
};
-typedef struct dummy_session {
+typedef struct session {
char name[MAX_PRIVATE_NAME+1]; /* +1 for the null */
char lib_version[3];
int32 address;
@@ -71,9 +72,9 @@
struct partial_message_info write; /* Write Queue to Client */
message_link *first; /* Write Queue to Client */
message_link *last; /* Write Queue to Client */
- struct dummy_session *sort_prev;
- struct dummy_session *sort_next;
- struct dummy_session *hash_next;
+ struct session *sort_prev;
+ struct session *sort_next;
+ struct session *hash_next;
} session;
void Sess_init(void);
Modified: branches/experimental-4.3-threaded/libspread-util/include/spu_events.h
===================================================================
--- branches/experimental-4.3-threaded/libspread-util/include/spu_events.h 2013-09-23 18:39:16 UTC (rev 592)
+++ branches/experimental-4.3-threaded/libspread-util/include/spu_events.h 2013-09-26 20:30:23 UTC (rev 593)
@@ -168,6 +168,8 @@
/***************************************************************************************************************************
***************************************************************************************************************************/
+extern E_events G_Events;
+
int E_events_init(E_events *e);
void E_events_fini(E_events *e);
Modified: branches/experimental-4.3-threaded/libspread-util/include/spu_objects.h
===================================================================
--- branches/experimental-4.3-threaded/libspread-util/include/spu_objects.h 2013-09-23 18:39:16 UTC (rev 592)
+++ branches/experimental-4.3-threaded/libspread-util/include/spu_objects.h 2013-09-26 20:30:23 UTC (rev 593)
@@ -43,7 +43,7 @@
#define OBJECTS_H
#define MAX_OBJECTS 200
-#define MAX_OBJ_USED 56
+#define MAX_OBJ_USED 57
/* Object types
*
Modified: branches/experimental-4.3-threaded/libspread-util/include/spu_objects_local.h
===================================================================
--- branches/experimental-4.3-threaded/libspread-util/include/spu_objects_local.h 2013-09-23 18:39:16 UTC (rev 592)
+++ branches/experimental-4.3-threaded/libspread-util/include/spu_objects_local.h 2013-09-26 20:30:23 UTC (rev 593)
@@ -108,6 +108,8 @@
#define GROUPS_MESSAGE_LINK 53
#define DAEMON_MEMBERS 54
+#define OBJ_LINK DOWN_LINK
+#define MEMB_OBJ 55
/* Highest valid object number is defined in objects.h as UNKNOWN_OBJ */
Modified: branches/experimental-4.3-threaded/libspread-util/src/events.c
===================================================================
--- branches/experimental-4.3-threaded/libspread-util/src/events.c 2013-09-23 18:39:16 UTC (rev 592)
+++ branches/experimental-4.3-threaded/libspread-util/src/events.c 2013-09-26 20:30:23 UTC (rev 593)
@@ -168,7 +168,7 @@
/***************************************************************************************************************************
***************************************************************************************************************************/
-static E_events Events; /* implicit event system for public E_* calls */
+E_events G_Events; /* implicit event system for public E_* calls */
/***************************************************************************************************************************
***************************************************************************************************************************/
@@ -1718,7 +1718,7 @@
sp_time E_get_time(void)
{
- return E_events_get_time(&Events);
+ return E_events_get_time(&G_Events);
}
/***************************************************************************************************************************
@@ -1823,7 +1823,7 @@
int E_init(void)
{
- return E_events_init(&Events);
+ return E_events_init(&G_Events);
}
/***************************************************************************************************************************
@@ -1831,7 +1831,7 @@
void E_fini(void)
{
- E_events_fini(&Events);
+ E_events_fini(&G_Events);
}
/***************************************************************************************************************************
@@ -1839,7 +1839,7 @@
int E_in_queue(E_time_callback_fcn fcn, int code, void *data)
{
- return E_events_in_queue(&Events, fcn, code, data);
+ return E_events_in_queue(&G_Events, fcn, code, data);
}
/***************************************************************************************************************************
@@ -1847,7 +1847,7 @@
int E_queue(E_time_callback_fcn fcn, int code, void *data, sp_time delta_time)
{
- return E_events_queue(&Events, fcn, code, data, delta_time, LOW_PRIORITY);
+ return E_events_queue(&G_Events, fcn, code, data, delta_time, LOW_PRIORITY);
}
/***************************************************************************************************************************
@@ -1855,7 +1855,7 @@
int E_queue_absolute(E_time_callback_fcn fcn, int code, void *data, sp_time absolute_time)
{
- return E_events_queue_absolute(&Events, fcn, code, data, absolute_time, LOW_PRIORITY);
+ return E_events_queue_absolute(&G_Events, fcn, code, data, absolute_time, LOW_PRIORITY);
}
/***************************************************************************************************************************
@@ -1863,7 +1863,7 @@
int E_queue_periodic(E_time_callback_fcn fcn, int code, void *data, sp_time periodic_time)
{
- return E_events_queue_periodic(&Events, fcn, code, data, periodic_time, LOW_PRIORITY);
+ return E_events_queue_periodic(&G_Events, fcn, code, data, periodic_time, LOW_PRIORITY);
}
/***************************************************************************************************************************
@@ -1871,7 +1871,7 @@
int E_dequeue(E_time_callback_fcn fcn, int code, void *data)
{
- return E_events_dequeue(&Events, fcn, code, data);
+ return E_events_dequeue(&G_Events, fcn, code, data);
}
/***************************************************************************************************************************
@@ -1879,7 +1879,7 @@
int E_attach_fd(int fd, E_watch_type fd_type, E_fd_callback_fcn fcn, int code, void *data, E_priority priority)
{
- return E_events_attach_fd(&Events, fd, fd_type, fcn, code, data, priority);
+ return E_events_attach_fd(&G_Events, fd, fd_type, fcn, code, data, priority);
}
/***************************************************************************************************************************
@@ -1887,7 +1887,7 @@
int E_detach_fd(int fd, E_watch_type fd_type)
{
- return E_events_detach_fd(&Events, fd, fd_type);
+ return E_events_detach_fd(&G_Events, fd, fd_type);
}
/***************************************************************************************************************************
@@ -1895,7 +1895,7 @@
int E_detach_fd_priority(int fd, E_watch_type fd_type, int priority)
{
- return E_events_detach_fd(&Events, fd, fd_type);
+ return E_events_detach_fd(&G_Events, fd, fd_type);
}
/***************************************************************************************************************************
@@ -1903,7 +1903,7 @@
int E_set_active_threshold(E_priority priority)
{
- return E_events_set_active_threshold(&Events, priority);
+ return E_events_set_active_threshold(&G_Events, priority);
}
/***************************************************************************************************************************
@@ -1911,7 +1911,7 @@
int E_num_active(E_priority priority)
{
- return E_events_num_active(&Events, priority);
+ return E_events_num_active(&G_Events, priority);
}
/***************************************************************************************************************************
@@ -1919,7 +1919,7 @@
int E_activate_fd(int fd, E_watch_type fd_type)
{
- return E_events_activate_fd(&Events, fd, fd_type);
+ return E_events_activate_fd(&G_Events, fd, fd_type);
}
/***************************************************************************************************************************
@@ -1927,7 +1927,7 @@
int E_deactivate_fd(int fd, E_watch_type fd_type)
{
- return E_events_deactivate_fd(&Events, fd, fd_type);
+ return E_events_deactivate_fd(&G_Events, fd, fd_type);
}
/***************************************************************************************************************************
@@ -1935,7 +1935,7 @@
int E_set_elevate_count(E_priority priority, unsigned count)
{
- return E_events_set_elevate_count(&Events, priority, count);
+ return E_events_set_elevate_count(&G_Events, priority, count);
}
/***************************************************************************************************************************
@@ -1943,7 +1943,7 @@
int E_get_elevate_count(E_priority priority, unsigned *count)
{
- return E_events_get_elevate_count(&Events, priority, count);
+ return E_events_get_elevate_count(&G_Events, priority, count);
}
/***************************************************************************************************************************
@@ -1951,7 +1951,7 @@
int E_handle_events(void)
{
- return E_events_handle_events(&Events);
+ return E_events_handle_events(&G_Events);
}
/***************************************************************************************************************************
@@ -1959,7 +1959,7 @@
void E_exit_events(void)
{
- E_events_exit_events(&Events);
+ E_events_exit_events(&G_Events);
}
/***************************************************************************************************************************
More information about the Spread-cvs
mailing list