[Spread-cvs] commit: r635 - in branches/experimental-4.3-threaded: daemon libspread-util/src stdutil/src

jschultz at spread.org jschultz at spread.org
Mon Jan 13 11:30:23 EST 2014


Author: jschultz
Date: 2014-01-13 11:30:22 -0500 (Mon, 13 Jan 2014)
New Revision: 635

Modified:
   branches/experimental-4.3-threaded/daemon/configuration.c
   branches/experimental-4.3-threaded/daemon/protocol.c
   branches/experimental-4.3-threaded/daemon/session.c
   branches/experimental-4.3-threaded/daemon/signal_queues.c
   branches/experimental-4.3-threaded/daemon/spread.c
   branches/experimental-4.3-threaded/libspread-util/src/events.c
   branches/experimental-4.3-threaded/stdutil/src/stdarr.c
Log:
Fixes I shoud have committed a while ago


Modified: branches/experimental-4.3-threaded/daemon/configuration.c
===================================================================
--- branches/experimental-4.3-threaded/daemon/configuration.c	2014-01-09 21:12:16 UTC (rev 634)
+++ branches/experimental-4.3-threaded/daemon/configuration.c	2014-01-13 16:30:22 UTC (rev 635)
@@ -623,11 +623,12 @@
         for ( j=0; j < src_conf->segments[i].num_procs; j++ )
         {
             p_index = Conf_proc_by_id_in_conf(dst_conf, src_conf->segments[i].procs[j]->id, &p);
-            assert(p_index != -1);
-            dst_conf->segments[i].procs[j] = &(dst_conf->allprocs[p_index]);
+            /*assert(p_index != -1);*/
+            dst_conf->segments[i].procs[j] = (p_index != -1 ? &(dst_conf->allprocs[p_index]) : NULL);
         }
     }        
 
+#if 0
 #ifndef NDEBUG
     /* Verify correct state after copy */
     for (i=0; i < dst_conf->num_segments; i++ )
@@ -638,6 +639,7 @@
         }
     }
 #endif
+#endif
 }
 
 static  int     Conf_proc_ref_by_id( int32u id, proc **p )

Modified: branches/experimental-4.3-threaded/daemon/protocol.c
===================================================================
--- branches/experimental-4.3-threaded/daemon/protocol.c	2014-01-09 21:12:16 UTC (rev 634)
+++ branches/experimental-4.3-threaded/daemon/protocol.c	2014-01-13 16:30:22 UTC (rev 635)
@@ -218,6 +218,9 @@
 
         Signal_Q_init(&Sess_Daemon_Q, sizeof(down_link*));
 
+	printf("################# Sess_Daemon_Q %p inited %d %d!\n", 
+	       &Sess_Daemon_Q, (int) stdarr_size(&Sess_Daemon_Q.main_q), (int) stdarr_size(&Sess_Daemon_Q.process_q));
+
 	E_attach_fd( Sess_Daemon_Q.q_pipe[0], READ_FD, Prot_process_sess_q, 0, 0, HIGH_PRIORITY );
 }
 

Modified: branches/experimental-4.3-threaded/daemon/session.c
===================================================================
--- branches/experimental-4.3-threaded/daemon/session.c	2014-01-09 21:12:16 UTC (rev 634)
+++ branches/experimental-4.3-threaded/daemon/session.c	2014-01-13 16:30:22 UTC (rev 635)
@@ -119,7 +119,7 @@
 signal_q            Daemon_Sess_Q;
 static E_events    *Session_Events = NULL;
 
-#ifdef _REENTRANT
+#ifdef USE_THREADS
 static E_events     Session_Events_Impl;
 static stdthread    Session_Thread;
 static stdthread_id Session_Thread_ID;
@@ -144,7 +144,7 @@
 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
+#ifdef USE_THREADS
 static void * STDTHREAD_FCN Sess_run(void *arg)
 {
   E_events_handle_events(&Session_Events);
@@ -155,7 +155,7 @@
 
 void Sess_spawn(void)
 {
-#ifdef _REENTRANT
+#ifdef USE_THREADS
   stdcode code;
 
   if ((code = stdthread_spawn(&Session_Thread, &Session_Thread_ID, Sess_run, NULL))) {
@@ -389,7 +389,7 @@
                 Alarm(EXIT, "Sess_init: Failure to Initialize MEMB_OBJ memory objects\n");
         }
 
-#ifndef _REENTRANT
+#ifndef USE_THREADS
 	Session_Events = &G_Events;
 #else
 	Session_Events = &Session_Events_Impl;
@@ -399,6 +399,11 @@
 	}
 #endif
 
+        Signal_Q_init(&Daemon_Sess_Q, sizeof(message_link*)); /* ### Testing queues */
+	
+	printf("################# Daemon_Sess_Q %p inited %d %d!\n", 
+	       &Daemon_Sess_Q, (int) stdarr_size(&Daemon_Sess_Q.main_q), (int) stdarr_size(&Daemon_Sess_Q.process_q));
+
 	Sess_init_sessions ();
 	
 	Num_sessions = 0;
@@ -496,8 +501,6 @@
 
 	G_init();
 
-        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 );
 
         Alarm( SESSION, "Sess_init: ended ok\n" );

Modified: branches/experimental-4.3-threaded/daemon/signal_queues.c
===================================================================
--- branches/experimental-4.3-threaded/daemon/signal_queues.c	2014-01-09 21:12:16 UTC (rev 634)
+++ branches/experimental-4.3-threaded/daemon/signal_queues.c	2014-01-13 16:30:22 UTC (rev 635)
@@ -14,14 +14,41 @@
   stdcode code;
   int     on;
 
-  if ((code = stdarr_construct(&q->main_q, vsize, STDARR_OPTS_NO_AUTO_SHRINK)) ||
-      (code = stdarr_construct(&q->process_q, vsize, STDARR_OPTS_NO_AUTO_SHRINK)) ||
-      (code = stdmutex_construct(&q->q_mut, STDMUTEX_FAST)) ||
-      pipe(q->q_pipe) ||
-      ioctl(q->q_pipe[0], FIONBIO, (on = 1, &on)) == -1 ||
-      ioctl(q->q_pipe[1], FIONBIO, (on = 1, &on)) == -1) {
+  if ((code = stdarr_construct(&q->main_q, vsize, STDARR_OPTS_NO_AUTO_SHRINK))) {
     Alarm(EXIT, "Signal_Q_init: failed; code = %d; '%s' error '%s'\n", code, stderr_strerr(code), strerror(errno));
   }
+
+  printf("Signal_Q_init:%d: %p %d %d\n", __LINE__, q, vsize, stdarr_size(&q->main_q));
+
+  if ((code = stdarr_construct(&q->process_q, vsize, STDARR_OPTS_NO_AUTO_SHRINK))) {
+    Alarm(EXIT, "Signal_Q_init: failed; code = %d; '%s' error '%s'\n", code, stderr_strerr(code), strerror(errno));
+  }
+
+  printf("Signal_Q_init:%d: %p %d %d %d\n", __LINE__, q, vsize, stdarr_size(&q->main_q), stdarr_size(&q->process_q));
+
+  if ((code = stdmutex_construct(&q->q_mut, STDMUTEX_FAST))) {
+    Alarm(EXIT, "Signal_Q_init: failed; code = %d; '%s' error '%s'\n", code, stderr_strerr(code), strerror(errno));
+  }
+
+  printf("Signal_Q_init:%d: %p %d %d %d\n", __LINE__, q, vsize, stdarr_size(&q->main_q), stdarr_size(&q->process_q));
+
+  if (pipe(q->q_pipe)) {
+    Alarm(EXIT, "Signal_Q_init: failed; code = %d; '%s' error '%s'\n", code, stderr_strerr(code), strerror(errno));
+  }
+
+  printf("Signal_Q_init:%d: %p %d %d %d\n", __LINE__, q, vsize, stdarr_size(&q->main_q), stdarr_size(&q->process_q));
+
+  if (ioctl(q->q_pipe[0], FIONBIO, (on = 1, &on)) == -1) {
+    Alarm(EXIT, "Signal_Q_init: failed; code = %d; '%s' error '%s'\n", code, stderr_strerr(code), strerror(errno));
+  }
+
+  printf("Signal_Q_init:%d: %p %d %d %d\n", __LINE__, q, vsize, stdarr_size(&q->main_q), stdarr_size(&q->process_q));
+  
+  if (ioctl(q->q_pipe[1], FIONBIO, (on = 1, &on)) == -1) {
+    Alarm(EXIT, "Signal_Q_init: failed; code = %d; '%s' error '%s'\n", code, stderr_strerr(code), strerror(errno));
+  }
+
+  printf("Signal_Q_init:%d: %p %d %d %d\n", __LINE__, q, vsize, stdarr_size(&q->main_q), stdarr_size(&q->process_q));
 }
 
 void Signal_Q_destroy(signal_q *q)

Modified: branches/experimental-4.3-threaded/daemon/spread.c
===================================================================
--- branches/experimental-4.3-threaded/daemon/spread.c	2014-01-09 21:12:16 UTC (rev 634)
+++ branches/experimental-4.3-threaded/daemon/spread.c	2014-01-13 16:30:22 UTC (rev 635)
@@ -213,6 +213,8 @@
 
 	E_handle_events();
 
+	printf("Goodbye!\n");
+
 	return 0;
 }
 

Modified: branches/experimental-4.3-threaded/libspread-util/src/events.c
===================================================================
--- branches/experimental-4.3-threaded/libspread-util/src/events.c	2014-01-09 21:12:16 UTC (rev 634)
+++ branches/experimental-4.3-threaded/libspread-util/src/events.c	2014-01-13 16:30:22 UTC (rev 635)
@@ -235,6 +235,8 @@
   ret.sec  = t.tv_sec;
   ret.usec = t.tv_usec;
 
+  assert(0 <= ret.usec && ret.usec < 1000000);
+
   return ret;
 }
 #endif
@@ -1745,7 +1747,7 @@
     t.usec -= 1000000;
     ++t.sec;
 
-  } else if (t.usec < 1000000) {
+  } else if (t.usec < -1000000) {
     t.usec += 1000000;
     --t.sec;
   }
@@ -1972,6 +1974,8 @@
   E_backend_type   backend_type;
   int              ret = 0;
 
+  printf("E_events_init: %p entered\n", events);
+
   memset(events, 0, sizeof(*events));
 
   events->keep_running     = STDFALSE;       /* NOTE: only set in E_events_handle_events; indicates loop is running */
@@ -2073,6 +2077,8 @@
   assert(ret != 0);
 
  END:
+  printf("E_events_init: %p leaving %d\n", events, ret);
+
   return ret;
 }
 
@@ -2494,6 +2500,8 @@
   E_priority dispatch_lvl = events->max_priority;
   E_priority starve_lvl;
 
+  printf("E_events_handle_events: %p entered\n", events);
+
   events->keep_running = STDTRUE;
 
   do {
@@ -2556,6 +2564,8 @@
 
   } while (events->keep_running);
 
+  printf("E_events_exit_events: %p leaving? keep_running = %d\n", events, events->keep_running);
+
   assert(ret == 0);
   goto END;
 
@@ -2565,6 +2575,8 @@
   assert(ret != 0 && ret != E_REPOPULATE);
 
  END:
+  printf("E_events_exit_events: %p leaving %d\n", events, ret);
+
   return ret;
 }
 
@@ -2573,7 +2585,12 @@
 
 void E_events_exit_events(E_events *events)
 {
+  printf("E_events_exit_events: %p entered\n", events);
+  abort();
+
   events->keep_running = STDFALSE;
+
+  printf("E_events_exit_events: %p leaving\n", events);
 }
 
 /***************************************************************************************************************************

Modified: branches/experimental-4.3-threaded/stdutil/src/stdarr.c
===================================================================
--- branches/experimental-4.3-threaded/stdutil/src/stdarr.c	2014-01-09 21:12:16 UTC (rev 634)
+++ branches/experimental-4.3-threaded/stdutil/src/stdarr.c	2014-01-13 16:30:22 UTC (rev 635)
@@ -173,12 +173,14 @@
   arr->vsize = vsize;
   arr->opts  = opts;
 
+  STDSAFETY_CHECK(STDARR_IS_LEGAL(arr) && ret == STDESUCCESS);
   goto stdarr_construct_end;
 
   /* error handling and return */
 
  stdarr_construct_fail:
   arr->vsize = 0;  /* make STDARR_IS_LEGAL(arr) false */
+  STDSAFETY_CHECK(ret != STDESUCCESS);
 
  stdarr_construct_end:
   return ret;




More information about the Spread-cvs mailing list