Main Page | Data Structures | File List | Data Fields | Globals

scheduler.c

Go to the documentation of this file.
00001 /* scheduler.c --- 
00002  * 
00003  * Filename: scheduler.c
00004  * Description: 
00005  * Author: Bryce Himebaugh
00006  * Maintainer: 
00007  * Created: Tue Oct  3 10:04:00 2006
00008  * Version: 
00009  * Last-Updated: 
00010  *           By: 
00011  *     Update #: 0
00012  * Keywords: 
00013  * Compatibility: 
00014  * 
00015  */
00016 
00017 /* Commentary: 
00018  * 
00019  * 
00020  * 
00021  */
00022 
00023 /* Change log:
00024  * 
00025  * 
00026  */
00027 
00028 /* This program is free software; you can redistribute it and/or modify
00029  * it under the terms of the GNU General Public License as published by
00030  * the Free Software Foundation; either version 2, or (at your option)
00031  * any later version.
00032  * 
00033  * This program is distributed in the hope that it will be useful,
00034  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00035  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00036  * GNU General Public License for more details.
00037  * 
00038  * You should have received a copy of the GNU General Public License
00039  * along with this program; see the file COPYING.  If not, write to the
00040  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
00041  * Boston, MA 02111-1307, USA.
00042  */
00043 
00044 /* Code: */
00045 #include <stdio.h>
00046 #include <stdlib.h>
00047 #include <pthread.h>
00048 #include "command_line_parser.h"
00049 #include "timer.h"
00050 #include "scheduler.h"
00051 #include "socket_comm.h"
00052 #include "global.h"
00053 
00054 int scheduler (command_options_t *options) {
00055   enum {INIT,WAIT,EXECUTE};
00056   static int sch_state=INIT;
00057   static timer_struct_t ts; 
00058   static pthread_t thread;
00059   int ret_val=0;
00060 
00061   switch (sch_state) {
00062   case INIT:
00063     ts.timer_period=TIMER_PERIOD_COUNTS;
00064     ts.timeout=0;
00065     pthread_create(&thread,NULL,periodic_thread,&ts);
00066     sch_state=WAIT;
00067     break;
00068   case WAIT:
00069     if (ts.timeout) {
00070       ts.timeout=0;
00071       sch_state=EXECUTE;
00072     }
00073     break;
00074   case EXECUTE:
00075     socket_comm(options);
00076     sch_state=WAIT;
00077     break;
00078   }
00079   return (ret_val);
00080 }
00081 
00082 
00083 
00084 
00085 /* scheduler.c ends here */

Generated on Fri Nov 3 15:24:51 2006 for ERT1 Communication Server by  doxygen 1.3.9.1