OSDN Git Service

HandBrake 0.2
[handbrake-jp/handbrake-jp-git.git] / HBThread.cpp
1 /* $Id: HBThread.cpp,v 1.3 2003/08/24 13:27:41 titer Exp $ */
2
3 #include "HBCommon.h"
4 #include "HBThread.h"
5
6 #include <OS.h>
7
8 HBThread::HBThread( char * name, int priority = B_LOW_PRIORITY )
9 {
10     fName = strdup( name );
11     fThread = spawn_thread( ThreadFunc, fName, priority, this );
12 }
13
14 HBThread::~HBThread()
15 {
16     fDie = true;
17     Log( "Stopping thread %d (\"%s\")", fThread, fName );
18     int32 exit_value;
19     wait_for_thread( fThread, &exit_value );
20     Log( "Thread %d stopped (\"%s\")", fThread, fName );
21     free( fName );
22 }
23
24 void HBThread::Run()
25 {
26     fDie = false;
27     resume_thread( fThread );
28     Log( "Thread %d started (\"%s\")", fThread, fName );
29 }
30
31 void HBThread::Suspend()
32 {
33     suspend_thread( fThread );
34 }
35
36 void HBThread::Resume()
37 {
38     resume_thread( fThread );
39 }
40
41 long HBThread::ThreadFunc( HBThread * _this )
42 {
43     _this->DoWork();
44     return 0;
45 }
46
47 void HBThread::DoWork()
48 {
49 }