00001 //=========================================================================== 00002 //= sub_proc.h Enero de 1999 = 00003 //=-------------------------------------------------------------------------= 00004 //= Definiciones de la clase SUB_PROCESO. = 00005 //=-------------------------------------------------------------------------= 00006 //= ADVERTENCIA: ESTE SOFTWARE NO ESTA CONCEBIDO NI DISENNADO PARA EL USO = 00007 //= EN EQUIPO DE CONTROL EN LINEA EN ENTORNOS PELIGROSOS QUE REQUIERAN UN = 00008 //= DESEMPENNO LIBRE DE FALLAS, COMO LA OPERACION DE PLANTAS NUCLEARES, = 00009 //= SISTEMAS DE NAVEGACION O COMUNICACION EN AVIONES, TRAFICO AEREO, = 00010 //= EQUIPO MEDICO DEL CUAL DEPENDAN VIDAS HUMANAS O SISTEMAS DE ARMAMENTO, = 00011 //= EN LOS CUALES UNA FALLA EN EL SOFTWARE PUEDA IMPLICAR DIRECTAMENTE LA = 00012 //= MUERTE, DANNOS PERSONALES O DANNOS FISICOS Y/O AMBIENTALES GRAVES = 00013 //= ("ACTIVIDADES DE ALGO RIESGO"). = 00014 //=-------------------------------------------------------------------------= 00015 //= Autor original: Oscar J. Chavarro G. A.K.A. JEDILINK. Copyright (c), = 00016 //= 1997 - 2003, oscarchavarro@hotmail.com = 00017 //= AQUYNZA es software libre, y se rige bajo los terminos de la licencia = 00018 //= LGPL de GNU (http://www.gnu.org). Para mayor informacion respecto a la = 00019 //= licencia de uso, consulte el archivo ./doc/LICENCIA en la distribucion. = 00020 //=========================================================================== 00021 00022 #ifndef __SUB_PROCESOS__ 00023 #define __SUB_PROCESOS__ 00024 00025 #include "jed_defs.h" 00026 00027 #if PLATAFORMA == i386_LINUX_GCC || PLATAFORMA == SPARC64_LINUX_GCC 00028 #include <pthread.h> 00029 #elif PLATAFORMA == SGI 00030 #define k_sigset_t int /* OJO: Esto es un machete! */ 00031 // #include <sys/types.h> 00032 // #include <sys/prctl.h> 00033 // #include <signal.h> 00034 #elif PLATAFORMA == i386_WIN32_VC 00035 #include <process.h> 00036 #else 00037 //#error "<SUB_PROCESO> ERROR: No esta implementado aun en esta plataforma." 00038 // OJO: TENGA EN CUENTA ESTO! 00039 #endif 00040 00041 class SUB_PROCESO { 00042 private: 00043 #if PLATAFORMA == SGI 00044 //pid_t pid_hijo; 00045 #elif PLATAFORMA == i386_LINUX_GCC || PLATAFORMA == SPARC64_LINUX_GCC 00046 pthread_t pid_hijo; 00047 #elif PLATAFORMA == i386_WIN32_VC 00048 unsigned int pid_hijo; 00049 #endif 00050 void (*prog)(void *); 00051 public: 00052 SUB_PROCESO(void (*f)(void *)); 00053 BOOLEAN lanzar(void); 00054 }; 00055 00056 #endif // __SUB_PROCESOS__ 00057 00058 //=========================================================================== 00059 //= EOF = 00060 //=========================================================================== 00061