diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/configfile.cc | 10 | ||||
| -rw-r--r-- | src/mutex.cc | 15 | ||||
| -rw-r--r-- | src/thread.cc | 31 | ||||
| -rw-r--r-- | src/thread.h | 33 | 
4 files changed, 47 insertions, 42 deletions
| diff --git a/src/configfile.cc b/src/configfile.cc index 24f9deb..71496a0 100644 --- a/src/configfile.cc +++ b/src/configfile.cc @@ -35,7 +35,9 @@  #include <sys/stat.h>  #include <sys/types.h> -#ifdef WIN32 +#include "platform.h" + +#if DG_PLATFORM == DG_PLATFORM_WINDOWS  #include <direct.h>  #include <windows.h>  #include <Shlobj.h> @@ -45,7 +47,7 @@  #include <hugin.hpp> -#ifdef WIN32 +#if DG_PLATFORM == DG_PLATFORM_WINDOWS  #define SEP "\\"  #else  #define SEP "/" @@ -58,7 +60,7 @@   */  static std::string getConfigPath()  { -#ifdef WIN32 +#if DG_PLATFORM == DG_PLATFORM_WINDOWS  	std::string configpath;  	TCHAR szPath[256];  	if(SUCCEEDED(SHGetFolderPath( @@ -87,7 +89,7 @@ static bool createConfigPath()  	{  		DEBUG(configfile, "No configuration exists, creating directory '%s'\n",  		    configpath.c_str()); -#ifdef WIN32 +#if DG_PLATFORM == DG_PLATFORM_WINDOWS  		if(mkdir(configpath.c_str()) < 0)  		{  #else diff --git a/src/mutex.cc b/src/mutex.cc index 84143be..b90132d 100644 --- a/src/mutex.cc +++ b/src/mutex.cc @@ -28,8 +28,9 @@  #include "mutex.h"  #include <hugin.hpp> +#include "platform.h" -#ifdef WIN32 +#if DG_PLATFORM == DG_PLATFORM_WINDOWS  #include <windows.h>  #else  #include <pthread.h> @@ -37,7 +38,7 @@  #endif  struct mutex_private_t { -#ifdef WIN32 +#if DG_PLATFORM == DG_PLATFORM_WINDOWS  	HANDLE mutex;  #else  	pthread_mutex_t mutex; @@ -47,7 +48,7 @@ struct mutex_private_t {  Mutex::Mutex()  {  	prv = new struct mutex_private_t(); -#ifdef WIN32 +#if DG_PLATFORM == DG_PLATFORM_WINDOWS  	prv->mutex = CreateMutex(nullptr,  // default security attributes  	                         FALSE, // initially not owned  	                         nullptr); // unnamed mutex @@ -58,7 +59,7 @@ Mutex::Mutex()  Mutex::~Mutex()  { -#ifdef WIN32 +#if DG_PLATFORM == DG_PLATFORM_WINDOWS  	CloseHandle(prv->mutex);  #else  	pthread_mutex_destroy(&prv->mutex); @@ -74,7 +75,7 @@ Mutex::~Mutex()  //! false otherwise.  bool Mutex::try_lock()  { -#ifdef WIN32 +#if DG_PLATFORM == DG_PLATFORM_WINDOWS  	DEBUG(mutex, "%s\n", __PRETTY_FUNCTION__);  	DWORD result = WaitForSingleObject(prv->mutex, 0); @@ -90,7 +91,7 @@ bool Mutex::try_lock()  void Mutex::lock()  { -#ifdef WIN32 +#if DG_PLATFORM == DG_PLATFORM_WINDOWS  	WaitForSingleObject(prv->mutex, // handle to mutex  	                    INFINITE);  // no time-out interval  #else @@ -100,7 +101,7 @@ void Mutex::lock()  void Mutex::unlock()  { -#ifdef WIN32 +#if DG_PLATFORM == DG_PLATFORM_WINDOWS  	ReleaseMutex(prv->mutex);  #else  	pthread_mutex_unlock(&prv->mutex); diff --git a/src/thread.cc b/src/thread.cc index 030c5dd..abc59a2 100644 --- a/src/thread.cc +++ b/src/thread.cc @@ -26,7 +26,6 @@   */  #include "thread.h" -#include <stdio.h>  #include <hugin.hpp>  Thread::Thread() @@ -37,32 +36,32 @@ Thread::~Thread()  void Thread::run()  { -  DEBUG(thread, "Thread::run()\n"); -#ifdef WIN32 -  tid = CreateThread(NULL, 0, thread_run, this, 0, NULL); +	DEBUG(thread, "Thread::run()\n"); +#if DG_PLATFORM == DG_PLATFORM_WINDOWS +	tid = CreateThread(NULL, 0, thread_run, this, 0, NULL);  #else -  pthread_create(&tid, NULL, thread_run, this); -#endif/*WIN32*/ +	pthread_create(&tid, NULL, thread_run, this); +#endif  }  void Thread::wait_stop()  { -#ifdef WIN32 -  WaitForSingleObject(tid, INFINITE); +#if DG_PLATFORM == DG_PLATFORM_WINDOWS +	WaitForSingleObject(tid, INFINITE);  #else -  pthread_join(tid, NULL); -#endif/*WIN32*/ +	pthread_join(tid, NULL); +#endif  } -#ifdef WIN32 +#if DG_PLATFORM == DG_PLATFORM_WINDOWS  DWORD WINAPI  #else  void* -#endif/*WIN32*/ +#endif  Thread::thread_run(void *data)  { -  DEBUG(thread, "Thread run\n"); -  Thread *t = (Thread*)data; -  t->thread_main(); -  return 0; +	DEBUG(thread, "Thread run\n"); +	Thread *t = (Thread*)data; +	t->thread_main(); +	return 0;  } diff --git a/src/thread.h b/src/thread.h index 6d3b920..f5bf1a7 100644 --- a/src/thread.h +++ b/src/thread.h @@ -26,31 +26,34 @@   */  #pragma once -#ifdef WIN32 +#include "platform.h" + +#if DG_PLATFORM == DG_PLATFORM_WINDOWS  #define WIN32_LEAN_AND_MEAN  #include <windows.h>  #else  #include <pthread.h> -#endif/*WIN32*/ +#endif -class Thread { +class Thread +{  public: -  Thread(); -  virtual ~Thread(); +	Thread(); +	virtual ~Thread(); -  void run(); -  void wait_stop(); +	void run(); +	void wait_stop();  protected: -  virtual void thread_main() = 0; -   +	virtual void thread_main() = 0; +  private: -#ifdef WIN32 +#if DG_PLATFORM == DG_PLATFORM_WINDOWS  	HANDLE tid{nullptr}; -  static DWORD WINAPI +	static DWORD WINAPI  #else -  pthread_t tid{0}; -  static void* -#endif/*WIN32*/ -    thread_run(void *data); +	pthread_t tid{0}; +	static void* +#endif +	thread_run(void *data);  }; | 
