diff options
| author | Bent Bisballe Nyeng <deva@aasimon.org> | 2013-01-26 08:42:07 +0100 | 
|---|---|---|
| committer | Bent Bisballe Nyeng <deva@aasimon.org> | 2013-01-26 08:42:07 +0100 | 
| commit | 06842ff2d9c727fe46f5da82ae1e43e74be6e588 (patch) | |
| tree | 20237465a1385c20b680cdd6f59a90a863cdc8ef | |
| parent | 3dd35a24c41cffb2886c523511fb8b07ee89cdaa (diff) | |
Moved thread files to src folder.
| -rw-r--r-- | src/thread.cc | 79 | ||||
| -rw-r--r-- | src/thread.h | 46 | 
2 files changed, 81 insertions, 44 deletions
| diff --git a/src/thread.cc b/src/thread.cc index 605cf54..8abf3cb 100644 --- a/src/thread.cc +++ b/src/thread.cc @@ -2,52 +2,83 @@  /***************************************************************************   *            thread.cc   * - *  Sun Oct 31 12:12:20 CET 2004 - *  Copyright  2004 Bent Bisballe + *  Tue Jan 24 08:11:37 CET 2012 + *  Copyright 2012 Bent Bisballe Nyeng   *  deva@aasimon.org   ****************************************************************************/  /* - *    This file is part of MIaV. + *  This file is part of DrumGizmo.   * - *    MIaV is free software; you can redistribute it and/or modify - *    it under the terms of the GNU General Public License as published by - *    the Free Software Foundation; either version 2 of the License, or - *    (at your option) any later version. + *  DrumGizmo is free software; you can redistribute it and/or modify + *  it under the terms of the GNU General Public License as published by + *  the Free Software Foundation; either version 2 of the License, or + *  (at your option) any later version.   * - *    MIaV is distributed in the hope that it will be useful, - *    but WITHOUT ANY WARRANTY; without even the implied warranty of - *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - *    GNU General Public License for more details. + *  DrumGizmo is distributed in the hope that it will be useful, + *  but WITHOUT ANY WARRANTY; without even the implied warranty of + *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + *  GNU General Public License for more details.   * - *    You should have received a copy of the GNU General Public License - *    along with MIaV; if not, write to the Free Software - *    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA. + *  You should have received a copy of the GNU General Public License + *  along with DrumGizmo; if not, write to the Free Software + *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA.   */  #include "thread.h" -static void* thread_run(void *data) { +#include <stdio.h> +#include <hugin.hpp> + +#ifdef WIN32 +static DWORD WINAPI thread_run(void *data) +#else +static void* thread_run(void *data) +#endif/*WIN32*/ +{ +  DEBUG(thread, "Thread run\n");    Thread *t = (Thread*)data;    t->thread_main(); -  return NULL; +  return 0;  }  Thread::Thread() -{ -} +{}  Thread::~Thread() -{ -} +{} -void Thread::exec() +void Thread::run()  { -  pthread_attr_init(&attr); -   -  pthread_create(&tid, &attr, thread_run, this); +  DEBUG(thread, "Thread::run()\n"); +#ifdef WIN32 +  tid = CreateThread(NULL, 0, thread_run, this, 0, NULL); +#else +  pthread_create(&tid, NULL, thread_run, this); +#endif/*WIN32*/  }  void Thread::wait_stop()  { +#ifdef WIN32 +  WaitForSingleObject(tid, INFINITE); +#else    pthread_join(tid, NULL); +#endif/*WIN32*/  } + +#ifdef TEST_THREAD +//Additional dependency files +//deps: +//Required cflags (autoconf vars may be used) +//cflags: +//Required link options (autoconf vars may be used) +//libs: +#include "test.h" + +TEST_BEGIN; + +// TODO: Put some testcode here (see test.h for usable macros). + +TEST_END; + +#endif/*TEST_THREAD*/ diff --git a/src/thread.h b/src/thread.h index ebce385..837222a 100644 --- a/src/thread.h +++ b/src/thread.h @@ -2,47 +2,53 @@  /***************************************************************************   *            thread.h   * - *  Sun Oct 31 12:12:20 CET 2004 - *  Copyright  2004 Bent Bisballe + *  Tue Jan 24 08:11:37 CET 2012 + *  Copyright 2012 Bent Bisballe Nyeng   *  deva@aasimon.org   ****************************************************************************/  /* - *    This file is part of MIaV. + *  This file is part of DrumGizmo.   * - *    MIaV is free software; you can redistribute it and/or modify - *    it under the terms of the GNU General Public License as published by - *    the Free Software Foundation; either version 2 of the License, or - *    (at your option) any later version. + *  DrumGizmo is free software; you can redistribute it and/or modify + *  it under the terms of the GNU General Public License as published by + *  the Free Software Foundation; either version 2 of the License, or + *  (at your option) any later version.   * - *    MIaV is distributed in the hope that it will be useful, - *    but WITHOUT ANY WARRANTY; without even the implied warranty of - *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - *    GNU General Public License for more details. + *  DrumGizmo is distributed in the hope that it will be useful, + *  but WITHOUT ANY WARRANTY; without even the implied warranty of + *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + *  GNU General Public License for more details.   * - *    You should have received a copy of the GNU General Public License - *    along with MIaV; if not, write to the Free Software - *    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA. + *  You should have received a copy of the GNU General Public License + *  along with DrumGizmo; if not, write to the Free Software + *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA.   */ -#ifndef __THREAD_H__ -#define __THREAD_H__ +#ifndef __DRUMGIZMO_THREAD_H__ +#define __DRUMGIZMO_THREAD_H__ +#ifdef WIN32 +#include <windows.h> +#else  #include <pthread.h> -#include <semaphore.h> +#endif/*WIN32*/  class Thread {  public:    Thread();    virtual ~Thread(); -  void exec(); +  void run();    void wait_stop();    virtual void thread_main() = 0;  private: -  pthread_attr_t attr; +#ifdef WIN32 +  HANDLE tid; +#else    pthread_t tid; +#endif/*WIN32*/  }; -#endif/*__THREAD_H__*/ +#endif/*__DRUMGIZMO_THREAD_H__*/ | 
