SMG-Decomp
A decompilation of Super Mario Galaxy 1
Loading...
Searching...
No Matches
OSThreadWrapper.cpp
1#include "Game/System/OSThreadWrapper.hpp"
2#include "JSystem/JKernel/JKRHeap.hpp"
3
4OSThreadWrapper::OSThreadWrapper(u32 a1, int a2, int a3, JKRHeap *pHeap) {
5 if (!pHeap) {
6 pHeap = JKRHeap::sCurrentHeap;
7 }
8
9 initHeapSpecified(pHeap, a1, a3);
10 initMessageQueue(_4, a2);
11}
12
13OSThreadWrapper::~OSThreadWrapper() {
14 if (_4) {
15 if (!OSIsThreadTerminated(mThread)) {
16 OSDetachThread(mThread);
17 OSCancelThread(mThread);
18 }
19
20 delete[] _34;
21 delete mThread;
22 }
23
24 delete[] mMessageArray;
25}
26
27void OSThreadWrapper::initMessageQueue(JKRHeap *pHeap, int messageCount) {
28 mMessageCount = messageCount;
29 mMessageArray = new(pHeap, 0) OSMessage[mMessageCount];
30 OSInitMessageQueue(&mQueue, mMessageArray, mMessageCount);
31}
32
33/*
34void OSThreadWrapper::initHeapSpecified(JKRHeap *pHeap, u32 a2, int priority) {
35 _4 = pHeap;
36 _38 = a2 & 0xFFFFFFE0;
37 _34 = new(pHeap, 32) u8[_38];
38 OSThread* thread = new(pHeap, 32) OSThread();
39 mThread = thread;
40 OSCreateThread(mThread, OSThreadWrapper::start, this, &_34[_38], _38, priority, 1);
41}
42*/
43
44s32 OSThreadWrapper::start(void * /* unused */) {
45 return run();
46}
47
48s32 OSThreadWrapper::run() {
49 return 0;
50}