thread.cc

来自「AVR 单片机程序设计用到的模拟器」· CC 代码 · 共 52 行

CC
52
字号
/* $Id: Thread.cc,v 1.5 2000/09/24 12:57:54 pure Exp $ */#include "Thread.h"#include <unistd.h>void* Thread::kickoff(void* obj) {	Thread* thread = (Thread*)obj;	thread->sem.wait();	thread->action();	pthread_detach(thread->thread);        return obj;}Thread::Thread(){	if (pthread_create(&thread, NULL, kickoff, this)) 			throw;	pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, NULL);}	Thread::~Thread(){	cancel();	join();}	void Thread::join(){	pthread_join(thread, NULL);}	void Thread::cancel(){        pthread_cancel(thread);}void Thread::arise(){	sem.signal();}void Thread::yield(){	usleep(1);}Thread::operator pthread_t* (){	return &thread;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?