summaryrefslogtreecommitdiffstats
path: root/source/OSSupport/IsThread.h
diff options
context:
space:
mode:
Diffstat (limited to 'source/OSSupport/IsThread.h')
-rw-r--r--source/OSSupport/IsThread.h100
1 files changed, 0 insertions, 100 deletions
diff --git a/source/OSSupport/IsThread.h b/source/OSSupport/IsThread.h
deleted file mode 100644
index b8784ea33..000000000
--- a/source/OSSupport/IsThread.h
+++ /dev/null
@@ -1,100 +0,0 @@
-
-// IsThread.h
-
-// Interfaces to the cIsThread class representing an OS-independent wrapper for a class that implements a thread.
-// This class will eventually suupersede the old cThread class
-
-/*
-Usage:
-To have a new thread, declare a class descending from cIsClass.
-Then override its Execute() method to provide your thread processing.
-In the descending class' constructor call the Start() method to start the thread once you're finished with initialization.
-*/
-
-
-
-
-
-#pragma once
-#ifndef CISTHREAD_H_INCLUDED
-#define CISTHREAD_H_INCLUDED
-
-
-
-
-
-class cIsThread
-{
-protected:
- /// This is the main thread entrypoint
- virtual void Execute(void) = 0;
-
- /// The overriden Execute() method should check this value periodically and terminate if this is true
- volatile bool m_ShouldTerminate;
-
-public:
- cIsThread(const AString & iThreadName);
- ~cIsThread();
-
- /// Starts the thread; returns without waiting for the actual start
- bool Start(void);
-
- /// Signals the thread to terminate and waits until it's finished
- void Stop(void);
-
- /// Waits for the thread to finish. Doesn't signalize the ShouldTerminate flag
- bool Wait(void);
-
- /// Returns the OS-dependent thread ID for the caller's thread
- static unsigned long GetCurrentID(void);
-
-protected:
- AString m_ThreadName;
-
- // Value used for "no handle":
- #ifdef _WIN32
- #define NULL_HANDLE NULL
- #else
- #define NULL_HANDLE 0
- #endif
-
- #ifdef _WIN32
-
- HANDLE m_Handle;
-
- static DWORD_PTR __stdcall thrExecute(LPVOID a_Param)
- {
- // Create a window so that the thread can be identified by 3rd party tools:
- HWND IdentificationWnd = CreateWindow("STATIC", ((cIsThread *)a_Param)->m_ThreadName.c_str(), 0, 0, 0, 0, WS_OVERLAPPED, NULL, NULL, NULL, NULL);
-
- // Run the thread:
- ((cIsThread *)a_Param)->Execute();
-
- // Destroy the identification window:
- DestroyWindow(IdentificationWnd);
-
- return 0;
- }
-
- #else // _WIN32
-
- pthread_t m_Handle;
-
- static void * thrExecute(void * a_Param)
- {
- ((cIsThread *)a_Param)->Execute();
- return NULL;
- }
-
- #endif // else _WIN32
-} ;
-
-
-
-
-
-#endif // CISTHREAD_H_INCLUDED
-
-
-
-