#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <pthread.h>
#include <semaphore.h>
#include <unistd.h>
#include <signal.h>
static int pthread_run = 1;
static void print(char*s);
static pthread_spinlock_t spin_lock;
static void read_wifi_message(void)
{
printf("read_wifi_message
");
}
static void write_wifi_messgage(void)
{
printf("write wifi messgage
");
}
static void critic_data(void)
{
read_wifi_message();
if(1)
{
write_wifi_messgage();
}
printf("current sensor gain
");
printf("vedio current signal
");
}
static void* Z_M_Pthread(void *arg)
{
int a ;
while(pthread_run)
{
pthread_spin_lock(&spin_lock);
critic_data();
pthread_spin_unlock(&spin_lock);
pthread_run = 4; // 网络太差
pthread_exit(&pthread_run);
}
return (void*)NULL;
}
// 定义一个临界区资源
static void print(char*s)
{
if(s==NULL)
{
printf("int value error
");
return 0;
}
printf("I'm here %s
",s);
}
int main()
{
int ret = -1;
int* thread_res = NULL;
pthread_t z_mtid,m_stid;
//pthread_spin_init(&lock, PTHREAD_PROCESS_PRIVATE);
pthread_spin_init(&spin_lock,PTHREAD_PROCESS_PRIVATE);
printf("ret is %d
",ret);
ret = pthread_create(&z_mtid,NULL,Z_M_Pthread,NULL);
ret = pthread_join(z_mtid,&thread_res);
printf("ret is %d pthread_exit is %d
",ret,(int)thread_res[0]);
while(1);
return 0;
}
