29 lines
693 B
C++
29 lines
693 B
C++
#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
|