#pragma once #include "base_head.h" #define CLOCK_ESTADO_BLOQUEADO 1 #define CLOCK_ESTADO_DESBLOQUEADO 0 class UTILES_EXPORT Clock//estructura para concurrencia { public: long t_sleep;//tiempo de sleep en milisegundos Clock(void); ~Clock(void); void entro();//pilla el cerrojo durmiendo si es necesario void salgo();//libera el cerrojo BOOL puedo();//intenta pillar el cerrojo, si ya estaba pillado devuelve false si no true private: long volatile cerrojo;//variable volatile long cliente;//id del thred que tiene el cerrojo CRITICAL_SECTION cerrojo1; int modo;//indica si usa cerrojo 0 o 1 }; UTILES_EXPORT long lck_sum_atm(long *n,int i);//suma de manera atomica i a n