summaryrefslogtreecommitdiff
path: root/omnithread/gnuradio
diff options
context:
space:
mode:
authorJohnathan Corgan <jcorgan@corganenterprises.com>2010-04-26 23:14:12 -0700
committerJohnathan Corgan <jcorgan@corganenterprises.com>2010-04-26 23:14:12 -0700
commitc6ad778bda302a9abfe3f1a905d1a80ee34c60a6 (patch)
tree26cd9a62b04dc6aa9f55ff5355ff4aef45cfd762 /omnithread/gnuradio
parentac2b84b93cad94f9a8830eeb5e62dace997c9a47 (diff)
Remove omnithreads library.
Diffstat (limited to 'omnithread/gnuradio')
-rw-r--r--omnithread/gnuradio/.gitignore2
-rw-r--r--omnithread/gnuradio/Makefile.am32
-rw-r--r--omnithread/gnuradio/omni_time.h89
-rw-r--r--omnithread/gnuradio/omnithread.h626
-rw-r--r--omnithread/gnuradio/ot_VxThread.h118
-rw-r--r--omnithread/gnuradio/ot_mach.h51
-rw-r--r--omnithread/gnuradio/ot_nt.h85
-rw-r--r--omnithread/gnuradio/ot_posix.h81
-rw-r--r--omnithread/gnuradio/ot_pthread_nt.h186
-rw-r--r--omnithread/gnuradio/ot_solaris.h47
10 files changed, 0 insertions, 1317 deletions
diff --git a/omnithread/gnuradio/.gitignore b/omnithread/gnuradio/.gitignore
deleted file mode 100644
index b336cc7cec..0000000000
--- a/omnithread/gnuradio/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/Makefile
-/Makefile.in
diff --git a/omnithread/gnuradio/Makefile.am b/omnithread/gnuradio/Makefile.am
deleted file mode 100644
index 1ec5612999..0000000000
--- a/omnithread/gnuradio/Makefile.am
+++ /dev/null
@@ -1,32 +0,0 @@
-#
-# Copyright 2009 Free Software Foundation, Inc.
-#
-# This file is part of GNU Radio
-#
-# GNU Radio 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 3, or (at your option)
-# any later version.
-#
-# GNU Radio 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 GNU Radio; see the file COPYING. If not, write to
-# the Free Software Foundation, Inc., 51 Franklin Street,
-# Boston, MA 02110-1301, USA.
-#
-
-include $(top_srcdir)/Makefile.common
-
-grinclude_HEADERS = \
- omnithread.h \
- omni_time.h \
- ot_mach.h \
- ot_nt.h \
- ot_posix.h \
- ot_pthread_nt.h \
- ot_solaris.h \
- ot_VxThread.h
diff --git a/omnithread/gnuradio/omni_time.h b/omnithread/gnuradio/omni_time.h
deleted file mode 100644
index bfb1516104..0000000000
--- a/omnithread/gnuradio/omni_time.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/* -*- c++ -*- */
-/*
- * Copyright 2007,2008 Free Software Foundation, Inc.
- *
- * This file is part of GNU Radio
- *
- * GNU Radio 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 3, or (at your option)
- * any later version.
- *
- * GNU Radio 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 this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-#ifndef INCLUDED_OMNI_TIME_H
-#define INCLUDED_OMNI_TIME_H
-
-struct omni_time {
- long int d_secs; // seconds.
- long int d_nsecs; // nanoseconds. Always in [0, 1e9-1]
-
- omni_time() : d_secs(0), d_nsecs(0) {}
- omni_time(long secs, long nanosecs=0) : d_secs(secs), d_nsecs(nanosecs) {}
-
- // N.B., this only makes sense for differences between times.
- // Double doesn't have enough bits to precisely represent an absolute time.
- omni_time(double secs);
-
- // N.B. This only makes sense for differences between times.
- // Double doesn't have enough bits to precisely represent an absolute time.
- double double_time() const { return (double)d_secs + d_nsecs * 1e-9; }
-
- /*!
- * \brief Return an absolute time suitable for use with
- * schedule_one_shot_timeout & schedule_periodic_timeout
- *
- * The return value is the current time plus the given relative offset.
- */
- static omni_time time(const omni_time &relative_offset = omni_time());
-};
-
-
-inline static bool
-operator<(const omni_time &x, const omni_time &y)
-{
- return ((x.d_secs < y.d_secs)
- || (x.d_secs == y.d_secs && x.d_nsecs < y.d_nsecs));
-}
-
-inline static bool
-operator>(const omni_time &x, const omni_time &y)
-{
- return ((x.d_secs > y.d_secs)
- || (x.d_secs == y.d_secs && x.d_nsecs > y.d_nsecs));
-}
-
-inline static bool
-operator>=(const omni_time &x, const omni_time &y)
-{
- return ((x.d_secs > y.d_secs)
- || (x.d_secs == y.d_secs && x.d_nsecs >= y.d_nsecs));
-}
-
-inline static bool
-operator<=(const omni_time &x, const omni_time &y)
-{
- return ((x.d_secs < y.d_secs)
- || (x.d_secs == y.d_secs && x.d_nsecs <= y.d_nsecs));
-}
-
-inline static bool
-operator==(const omni_time &x, const omni_time &y)
-{
- return (x.d_secs == y.d_secs && x.d_nsecs == y.d_nsecs);
-}
-
-
-omni_time operator+(const omni_time &x, const omni_time &y);
-omni_time operator+(const omni_time &x, double y);
-omni_time operator-(const omni_time &x, const omni_time &y);
-omni_time operator-(const omni_time &x, double y);
-
-#endif /* INCLUDED_OMNI_TIME_H */
diff --git a/omnithread/gnuradio/omnithread.h b/omnithread/gnuradio/omnithread.h
deleted file mode 100644
index 8e8162b102..0000000000
--- a/omnithread/gnuradio/omnithread.h
+++ /dev/null
@@ -1,626 +0,0 @@
-// -*- Mode: C++; -*-
-// Package : omnithread
-// omnithread.h Created : 7/94 tjr
-//
-// Copyright (C) 2006 Free Software Foundation, Inc.
-// Copyright (C) 1994,1995,1996, 1997 Olivetti & Oracle Research Laboratory
-//
-// This file is part of the omnithread library
-//
-// The omnithread library is free software; you can redistribute it and/or
-// modify it under the terms of the GNU Library General Public
-// License as published by the Free Software Foundation; either
-// version 2 of the License, or (at your option) any later version.
-//
-// This library 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
-// Library General Public License for more details.
-//
-// You should have received a copy of the GNU Library General Public
-// License along with this library; if not, write to the Free
-// Software Foundation, Inc., 51 Franklin Street, Boston, MA
-// 02110-1301, USA
-//
-
-//
-// Interface to OMNI thread abstraction.
-//
-// This file declares classes for threads and synchronisation objects
-// (mutexes, condition variables and counting semaphores).
-//
-// Wherever a seemingly arbitrary choice has had to be made as to the interface
-// provided, the intention here has been to be as POSIX-like as possible. This
-// is why there is no semaphore timed wait, for example.
-//
-
-#ifndef __omnithread_h_
-#define __omnithread_h_
-
-#ifndef NULL
-#define NULL 0
-#endif
-
-class omni_mutex;
-class omni_condition;
-class omni_semaphore;
-class omni_thread;
-
-//
-// OMNI_THREAD_EXPOSE can be defined as public or protected to expose the
-// implementation class - this may be useful for debugging. Hopefully this
-// won't change the underlying structure which the compiler generates so that
-// this can work without recompiling the library.
-//
-
-#ifndef OMNI_THREAD_EXPOSE
-#define OMNI_THREAD_EXPOSE private
-#endif
-
-//
-// Include implementation-specific header file.
-//
-// This must define 4 CPP macros of the form OMNI_x_IMPLEMENTATION for mutex,
-// condition variable, semaphore and thread. Each should define any
-// implementation-specific members of the corresponding classes.
-//
-
-
-//
-// For now, we assume they've always got a Posix Threads implementation.
-// If not, it'll take some configure hacking to sort it out, along with
-// the relevant libraries to link with, etc.
-//
-
-#if !defined(OMNITHREAD_POSIX) && !defined(OMNITHREAD_NT) && defined HAVE_CONFIG_H
-// #include <config.h> // No, No, No! Never include <config.h> from a header
-#endif
-
-#if defined(OMNITHREAD_POSIX)
-#include <gnuradio/ot_posix.h>
-
-#elif defined(OMNITHREAD_NT)
-#include <gnuradio/ot_nt.h>
-
-#ifdef _MSC_VER
-
-// Using MSVC++ to compile. If compiling library as a DLL,
-// define _OMNITHREAD_DLL. If compiling as a statuc library, define
-// _WINSTATIC
-// If compiling an application that is to be statically linked to omnithread,
-// define _WINSTATIC (if the application is to be dynamically linked,
-// there is no need to define any of these macros).
-
-#if defined (_OMNITHREAD_DLL) && defined(_WINSTATIC)
-#error "Both _OMNITHREAD_DLL and _WINSTATIC are defined."
-#elif defined(_OMNITHREAD_DLL)
-#define _OMNITHREAD_NTDLL_ __declspec(dllexport)
-#elif !defined(_WINSTATIC)
-#define _OMNITHREAD_NTDLL_ __declspec(dllimport)
-#elif defined(_WINSTATIC)
-#define _OMNITHREAD_NTDLL_
-#endif
- // _OMNITHREAD_DLL && _WINSTATIC
-
-#else
-
-// Not using MSVC++ to compile
-#define _OMNITHREAD_NTDLL_
-
-#endif
- // _MSC_VER
-
-#elif defined(__vxWorks__)
-#include <gnuradio/ot_VxThread.h>
-
-#elif defined(__sunos__)
-#if __OSVERSION__ != 5
-// XXX Workaround for SUN C++ compiler (seen on 4.2) Template.DB code
-// regeneration bug. See omniORB2/CORBA_sysdep.h for details.
-#if !defined(__SUNPRO_CC) || __OSVERSION__ != '5'
-#error "Only SunOS 5.x or later is supported."
-#endif
-#endif
-#ifdef UseSolarisThreads
-#include <gnuradio/ot_solaris.h>
-#else
-#include <gnuradio/ot_posix.h>
-#endif
-
-#elif defined(__rtems__)
-#include <gnuradio/ot_posix.h>
-#include <sched.h>
-
-#elif defined(__macos__)
-#include <gnuradio/ot_posix.h>
-#include <sched.h>
-
-#else
-#error "No implementation header file"
-#endif
-
-
-#if !defined(__WIN32__)
-#define _OMNITHREAD_NTDLL_
-#endif
-
-#if (!defined(OMNI_MUTEX_IMPLEMENTATION) || \
- !defined(OMNI_MUTEX_LOCK_IMPLEMENTATION) || \
- !defined(OMNI_MUTEX_TRYLOCK_IMPLEMENTATION)|| \
- !defined(OMNI_MUTEX_UNLOCK_IMPLEMENTATION) || \
- !defined(OMNI_CONDITION_IMPLEMENTATION) || \
- !defined(OMNI_SEMAPHORE_IMPLEMENTATION) || \
- !defined(OMNI_THREAD_IMPLEMENTATION))
-#error "Implementation header file incomplete"
-#endif
-
-
-//
-// This exception is thrown in the event of a fatal error.
-//
-
-class _OMNITHREAD_NTDLL_ omni_thread_fatal {
-public:
- int error;
- omni_thread_fatal(int e = 0) : error(e) {}
-};
-
-
-//
-// This exception is thrown when an operation is invoked with invalid
-// arguments.
-//
-
-class _OMNITHREAD_NTDLL_ omni_thread_invalid {};
-
-
-///////////////////////////////////////////////////////////////////////////
-//
-// Mutex
-//
-///////////////////////////////////////////////////////////////////////////
-
-class _OMNITHREAD_NTDLL_ omni_mutex {
-
-public:
- omni_mutex(void);
- ~omni_mutex(void);
-
- inline void lock(void) { OMNI_MUTEX_LOCK_IMPLEMENTATION }
- inline void unlock(void) { OMNI_MUTEX_UNLOCK_IMPLEMENTATION }
- inline int trylock(void) { return OMNI_MUTEX_TRYLOCK_IMPLEMENTATION }
- // if mutex is unlocked, lock it and return 1 (true).
- // If it's already locked then return 0 (false).
-
- inline void acquire(void) { lock(); }
- inline void release(void) { unlock(); }
- // the names lock and unlock are preferred over acquire and release
- // since we are attempting to be as POSIX-like as possible.
-
- friend class omni_condition;
-
-private:
- // dummy copy constructor and operator= to prevent copying
- omni_mutex(const omni_mutex&);
- omni_mutex& operator=(const omni_mutex&);
-
-OMNI_THREAD_EXPOSE:
- OMNI_MUTEX_IMPLEMENTATION
-};
-
-//
-// As an alternative to:
-// {
-// mutex.lock();
-// .....
-// mutex.unlock();
-// }
-//
-// you can use a single instance of the omni_mutex_lock class:
-//
-// {
-// omni_mutex_lock l(mutex);
-// ....
-// }
-//
-// This has the advantage that mutex.unlock() will be called automatically
-// when an exception is thrown.
-//
-
-class _OMNITHREAD_NTDLL_ omni_mutex_lock {
- omni_mutex& mutex;
-public:
- omni_mutex_lock(omni_mutex& m) : mutex(m) { mutex.lock(); }
- ~omni_mutex_lock(void) { mutex.unlock(); }
-private:
- // dummy copy constructor and operator= to prevent copying
- omni_mutex_lock(const omni_mutex_lock&);
- omni_mutex_lock& operator=(const omni_mutex_lock&);
-};
-
-
-///////////////////////////////////////////////////////////////////////////
-//
-// Condition variable
-//
-///////////////////////////////////////////////////////////////////////////
-
-class _OMNITHREAD_NTDLL_ omni_condition {
-
- omni_mutex* mutex;
-
-public:
- omni_condition(omni_mutex* m);
- // constructor must be given a pointer to an existing mutex. The
- // condition variable is then linked to the mutex, so that there is an
- // implicit unlock and lock around wait() and timed_wait().
-
- ~omni_condition(void);
-
- void wait(void);
- // wait for the condition variable to be signalled. The mutex is
- // implicitly released before waiting and locked again after waking up.
- // If wait() is called by multiple threads, a signal may wake up more
- // than one thread. See POSIX threads documentation for details.
-
- int timedwait(unsigned long secs, unsigned long nanosecs = 0);
- // timedwait() is given an absolute time to wait until. To wait for a
- // relative time from now, use omni_thread::get_time. See POSIX threads
- // documentation for why absolute times are better than relative.
- // Returns 1 (true) if successfully signalled, 0 (false) if time
- // expired.
-
- void signal(void);
- // if one or more threads have called wait(), signal wakes up at least
- // one of them, possibly more. See POSIX threads documentation for
- // details.
-
- void broadcast(void);
- // broadcast is like signal but wakes all threads which have called
- // wait().
-
-private:
- // dummy copy constructor and operator= to prevent copying
- omni_condition(const omni_condition&);
- omni_condition& operator=(const omni_condition&);
-
-OMNI_THREAD_EXPOSE:
- OMNI_CONDITION_IMPLEMENTATION
-};
-
-
-///////////////////////////////////////////////////////////////////////////
-//
-// Counting (or binary) semaphore
-//
-///////////////////////////////////////////////////////////////////////////
-
-class _OMNITHREAD_NTDLL_ omni_semaphore {
-
-public:
- // if max_count == 1, you've got a binary semaphore.
- omni_semaphore(unsigned int initial = 1, unsigned int max_count = 0x7fffffff);
- ~omni_semaphore(void);
-
- void wait(void);
- // if semaphore value is > 0 then decrement it and carry on. If it's
- // already 0 then block.
-
- int trywait(void);
- // if semaphore value is > 0 then decrement it and return 1 (true).
- // If it's already 0 then return 0 (false).
-
- void post(void);
- // if any threads are blocked in wait(), wake one of them up. Otherwise
- // increment the value of the semaphore.
-
-private:
- // dummy copy constructor and operator= to prevent copying
- omni_semaphore(const omni_semaphore&);
- omni_semaphore& operator=(const omni_semaphore&);
-
-OMNI_THREAD_EXPOSE:
- OMNI_SEMAPHORE_IMPLEMENTATION
-};
-
-//
-// A helper class for semaphores, similar to omni_mutex_lock above.
-//
-
-class _OMNITHREAD_NTDLL_ omni_semaphore_lock {
- omni_semaphore& sem;
-public:
- omni_semaphore_lock(omni_semaphore& s) : sem(s) { sem.wait(); }
- ~omni_semaphore_lock(void) { sem.post(); }
-private:
- // dummy copy constructor and operator= to prevent copying
- omni_semaphore_lock(const omni_semaphore_lock&);
- omni_semaphore_lock& operator=(const omni_semaphore_lock&);
-};
-
-
-///////////////////////////////////////////////////////////////////////////
-//
-// Thread
-//
-///////////////////////////////////////////////////////////////////////////
-
-class _OMNITHREAD_NTDLL_ omni_thread {
-
-public:
-
- enum priority_t {
- PRIORITY_LOW,
- PRIORITY_NORMAL,
- PRIORITY_HIGH
- };
-
- enum state_t {
- STATE_NEW, // thread object exists but thread hasn't
- // started yet.
- STATE_RUNNING, // thread is running.
- STATE_TERMINATED // thread has terminated but storage has not
- // been reclaimed (i.e. waiting to be joined).
- };
-
- //
- // Constructors set up the thread object but the thread won't start until
- // start() is called. The create method can be used to construct and start
- // a thread in a single call.
- //
-
- omni_thread(void (*fn)(void*), void* arg = NULL,
- priority_t pri = PRIORITY_NORMAL);
- omni_thread(void* (*fn)(void*), void* arg = NULL,
- priority_t pri = PRIORITY_NORMAL);
- // these constructors create a thread which will run the given function
- // when start() is called. The thread will be detached if given a
- // function with void return type, undetached if given a function
- // returning void*. If a thread is detached, storage for the thread is
- // reclaimed automatically on termination. Only an undetached thread
- // can be joined.
-
- void start(void);
- // start() causes a thread created with one of the constructors to
- // start executing the appropriate function.
-
-protected:
-
- omni_thread(void* arg = NULL, priority_t pri = PRIORITY_NORMAL);
- // this constructor is used in a derived class. The thread will
- // execute the run() or run_undetached() member functions depending on
- // whether start() or start_undetached() is called respectively.
-
-public:
-
- void start_undetached(void);
- // can be used with the above constructor in a derived class to cause
- // the thread to be undetached. In this case the thread executes the
- // run_undetached member function.
-
-protected:
-
- virtual ~omni_thread(void);
- // destructor cannot be called by user (except via a derived class).
- // Use exit() or cancel() instead. This also means a thread object must
- // be allocated with new - it cannot be statically or automatically
- // allocated. The destructor of a class that inherits from omni_thread
- // shouldn't be public either (otherwise the thread object can be
- // destroyed while the underlying thread is still running).
-
-public:
-
- void join(void**);
- // join causes the calling thread to wait for another's completion,
- // putting the return value in the variable of type void* whose address
- // is given (unless passed a null pointer). Only undetached threads
- // may be joined. Storage for the thread will be reclaimed.
-
- void set_priority(priority_t);
- // set the priority of the thread.
-
- static omni_thread* create(void (*fn)(void*), void* arg = NULL,
- priority_t pri = PRIORITY_NORMAL);
- static omni_thread* create(void* (*fn)(void*), void* arg = NULL,
- priority_t pri = PRIORITY_NORMAL);
- // create spawns a new thread executing the given function with the
- // given argument at the given priority. Returns a pointer to the
- // thread object. It simply constructs a new thread object then calls
- // start.
-
- static void exit(void* return_value = NULL);
- // causes the calling thread to terminate.
-
- static omni_thread* self(void);
- // returns the calling thread's omni_thread object. If the
- // calling thread is not the main thread and is not created
- // using this library, returns 0. (But see create_dummy()
- // below.)
-
- static void yield(void);
- // allows another thread to run.
-
- static void sleep(unsigned long secs, unsigned long nanosecs = 0);
- // sleeps for the given time.
-
- static void get_time(unsigned long* abs_sec, unsigned long* abs_nsec,
- unsigned long rel_sec = 0, unsigned long rel_nsec=0);
- // calculates an absolute time in seconds and nanoseconds, suitable for
- // use in timed_waits on condition variables, which is the current time
- // plus the given relative offset.
-
-
- static void stacksize(unsigned long sz);
- static unsigned long stacksize();
- // Use this value as the stack size when spawning a new thread.
- // The default value (0) means that the thread library default is
- // to be used.
-
-
- // Per-thread data
- //
- // These functions allow you to attach additional data to an
- // omni_thread. First allocate a key for yourself with
- // allocate_key(). Then you can store any object whose class is
- // derived from value_t. Any values still stored in the
- // omni_thread when the thread exits are deleted.
- //
- // These functions are NOT thread safe, so you should be very
- // careful about setting/getting data in a different thread to the
- // current thread.
-
- typedef unsigned int key_t;
- static key_t allocate_key();
-
- class value_t {
- public:
- virtual ~value_t() {}
- };
-
- value_t* set_value(key_t k, value_t* v);
- // Sets a value associated with the given key. The key must
- // have been allocated with allocate_key(). If a value has
- // already been set with the specified key, the old value_t
- // object is deleted and replaced. Returns the value which was
- // set, or zero if the key is invalid.
-
- value_t* get_value(key_t k);
- // Returns the value associated with the key. If the key is
- // invalid, or there is no value for the key, returns zero.
-
- value_t* remove_value(key_t k);
- // Removes the value associated with the key and returns it.
- // If the key is invalid, or there is no value for the key,
- // returns zero.
-
-
- // Dummy omni_thread
- //
- // Sometimes, an application finds itself with threads created
- // outside of omnithread which must interact with omnithread
- // features such as the per-thread data. In this situation,
- // omni_thread::self() would normally return 0. These functions
- // allow the application to create a suitable dummy omni_thread
- // object.
-
- static omni_thread* create_dummy(void);
- // creates a dummy omni_thread for the calling thread. Future
- // calls to self() will return the dummy omni_thread. Throws
- // omni_thread_invalid if this thread already has an
- // associated omni_thread (real or dummy).
-
- static void release_dummy();
- // release the dummy omni_thread for this thread. This
- // function MUST be called before the thread exits. Throws
- // omni_thread_invalid if the calling thread does not have a
- // dummy omni_thread.
-
- // class ensure_self should be created on the stack. If created in
- // a thread without an associated omni_thread, it creates a dummy
- // thread which is released when the ensure_self object is deleted.
-
- class ensure_self {
- public:
- inline ensure_self() : _dummy(0)
- {
- _self = omni_thread::self();
- if (!_self) {
- _dummy = 1;
- _self = omni_thread::create_dummy();
- }
- }
- inline ~ensure_self()
- {
- if (_dummy)
- omni_thread::release_dummy();
- }
- inline omni_thread* self() { return _self; }
- private:
- omni_thread* _self;
- int _dummy;
- };
-
-
-private:
-
- virtual void run(void* /*arg*/) {}
- virtual void* run_undetached(void* /*arg*/) { return NULL; }
- // can be overridden in a derived class. When constructed using the
- // the constructor omni_thread(void*, priority_t), these functions are
- // called by start() and start_undetached() respectively.
-
- void common_constructor(void* arg, priority_t pri, int det);
- // implements the common parts of the constructors.
-
- omni_mutex mutex;
- // used to protect any members which can change after construction,
- // i.e. the following 2 members.
-
- state_t _state;
- priority_t _priority;
-
- static omni_mutex* next_id_mutex;
- static int next_id;
- int _id;
-
- void (*fn_void)(void*);
- void* (*fn_ret)(void*);
- void* thread_arg;
- int detached;
- int _dummy;
- value_t** _values;
- unsigned long _value_alloc;
-
- omni_thread(const omni_thread&);
- omni_thread& operator=(const omni_thread&);
- // Not implemented
-
-public:
-
- priority_t priority(void) {
-
- // return this thread's priority.
-
- omni_mutex_lock l(mutex);
- return _priority;
- }
-
- state_t state(void) {
-
- // return thread state (invalid, new, running or terminated).
-
- omni_mutex_lock l(mutex);
- return _state;
- }
-
- int id(void) { return _id; }
- // return unique thread id within the current process.
-
-
- // This class plus the instance of it declared below allows us to execute
- // some initialisation code before main() is called.
-
- class _OMNITHREAD_NTDLL_ init_t {
- public:
- init_t(void);
- ~init_t(void);
- };
-
- friend class init_t;
- friend class omni_thread_dummy;
-
-OMNI_THREAD_EXPOSE:
- OMNI_THREAD_IMPLEMENTATION
-};
-
-#ifndef __rtems__
-static omni_thread::init_t omni_thread_init;
-#else
-// RTEMS calls global Ctor/Dtor in a context that is not
-// a posix thread. Calls to functions to pthread_self() in
-// that context returns NULL.
-// So, for RTEMS we will make the thread initialization at the
-// beginning of the Init task that has a posix context.
-#endif
-
-#endif
diff --git a/omnithread/gnuradio/ot_VxThread.h b/omnithread/gnuradio/ot_VxThread.h
deleted file mode 100644
index e96c036cce..0000000000
--- a/omnithread/gnuradio/ot_VxThread.h
+++ /dev/null
@@ -1,118 +0,0 @@
-#ifndef __VXTHREAD_H__
-#define __VXTHREAD_H__
-/*
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% Project: omniORB
-%% Filename: $Filename$
-%% Author: Guillaume/Bill ARRECKX
-%% Copyright Wavetek Wandel & Goltermann, Plymouth.
-%% Description: OMNI thread implementation classes for VxWorks threads
-%% Notes:
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% $Log$
-%% Revision 1.1 2004/04/10 18:00:52 eb
-%% Initial revision
-%%
-%% Revision 1.1.1.1 2004/03/01 00:20:27 eb
-%% initial checkin
-%%
-%% Revision 1.1 2003/05/25 05:29:04 eb
-%% see ChangeLog
-%%
-%% Revision 1.1.2.1 2003/02/17 02:03:07 dgrisby
-%% vxWorks port. (Thanks Michael Sturm / Acterna Eningen GmbH).
-%%
-%% Revision 1.1.1.1 2002/11/19 14:55:21 sokcevti
-%% OmniOrb4.0.0 VxWorks port
-%%
-%% Revision 1.2 2002/06/14 12:45:50 engeln
-%% unnecessary members in condition removed.
-%% ---
-%%
-%% Revision 1.1.1.1 2002/04/02 10:08:49 sokcevti
-%% omniORB4 initial realease
-%%
-%% Revision 1.1 2001/03/23 16:50:23 hartmut
-%% Initial Version 2.8
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-*/
-
-
-///////////////////////////////////////////////////////////////////////////
-// Includes
-///////////////////////////////////////////////////////////////////////////
-#include <vxWorks.h>
-#include <semLib.h>
-#include <taskLib.h>
-
-
-///////////////////////////////////////////////////////////////////////////
-// Externs prototypes
-///////////////////////////////////////////////////////////////////////////
-extern "C" void omni_thread_wrapper(void* ptr);
-
-
-///////////////////////////////////////////////////////////////////////////
-// Exported macros
-// Note: These are added as private members in each class implementation.
-///////////////////////////////////////////////////////////////////////////
-#define OMNI_MUTEX_IMPLEMENTATION \
- SEM_ID mutexID; \
- bool m_bConstructed;
-
-#define OMNI_CONDITION_IMPLEMENTATION \
- long waiters_; \
- SEM_ID waiters_lock_; \
- SEM_ID sema_;
-
-#define OMNI_SEMAPHORE_IMPLEMENTATION \
- SEM_ID semID;
-
-#define OMNI_MUTEX_LOCK_IMPLEMENTATION \
- if(semTake(mutexID, WAIT_FOREVER) != OK) \
- { \
- throw omni_thread_fatal(errno); \
- }
-
-#define OMNI_MUTEX_UNLOCK_IMPLEMENTATION \
- if(semGive(mutexID) != OK) \
- { \
- throw omni_thread_fatal(errno); \
- }
-
-#define OMNI_THREAD_IMPLEMENTATION \
- friend void omni_thread_wrapper(void* ptr); \
- static int vxworks_priority(priority_t); \
- omni_condition *running_cond; \
- void* return_val; \
- int tid; \
- public: \
- static void attach(void); \
- static void detach(void); \
- static void show(void);
-
-
-///////////////////////////////////////////////////////////////////////////
-// Porting macros
-///////////////////////////////////////////////////////////////////////////
-// This is a wrapper function for the 'main' function which does not exists
-// as such in VxWorks. The wrapper creates a launch function instead,
-// which spawns the application wrapped in a omni_thread.
-// Argc will always be null.
-///////////////////////////////////////////////////////////////////////////
-#define main( discarded_argc, discarded_argv ) \
- omni_discard_retval() \
- { \
- throw; \
- } \
- int omni_main( int argc, char **argv ); \
- void launch( ) \
- { \
- omni_thread* th = new omni_thread( (void(*)(void*))omni_main );\
- th->start();\
- }\
- int omni_main( int argc, char **argv )
-
-
-#endif // ndef __VXTHREAD_H__
diff --git a/omnithread/gnuradio/ot_mach.h b/omnithread/gnuradio/ot_mach.h
deleted file mode 100644
index 76361926ca..0000000000
--- a/omnithread/gnuradio/ot_mach.h
+++ /dev/null
@@ -1,51 +0,0 @@
-// Package : omnithread
-// omnithread/posix.h Created : 7/97 lars immisch lars@ibp.de
-//
-// Copyright (C) 1994,1995,1996, 1997 Immisch, becker & Partner
-//
-// This file is part of the omnithread library
-//
-// The omnithread library is free software; you can redistribute it and/or
-// modify it under the terms of the GNU Library General Public
-// License as published by the Free Software Foundation; either
-// version 2 of the License, or (at your option) any later version.
-//
-// This library 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
-// Library General Public License for more details.
-//
-// You should have received a copy of the GNU Library General Public
-// License along with this library; if not, write to the Free
-// Software Foundation, Inc., 51 Franklin Street, Boston, MA
-// 02110-1301, USA
-//
-//
-// OMNI thread implementation classes for posix threads
-//
-
-#ifndef __omnithread_mach_h_
-#define __omnithread_mach_h_
-
-#include <mach/cthreads.h>
-
-extern "C" void* omni_thread_wrapper(void* ptr);
-
-#define OMNI_MUTEX_IMPLEMENTATION \
- struct mutex mach_mutex;
-
-#define OMNI_CONDITION_IMPLEMENTATION \
- struct condition mach_cond;
-
-#define OMNI_SEMAPHORE_IMPLEMENTATION \
- omni_mutex m; \
- omni_condition c; \
- int value;
-
-
-#define OMNI_THREAD_IMPLEMENTATION \
- cthread_t mach_thread; \
- static int mach_priority(priority_t); \
- friend void* omni_thread_wrapper(void* ptr);
-
-#endif
diff --git a/omnithread/gnuradio/ot_nt.h b/omnithread/gnuradio/ot_nt.h
deleted file mode 100644
index 551ccf2f14..0000000000
--- a/omnithread/gnuradio/ot_nt.h
+++ /dev/null
@@ -1,85 +0,0 @@
-// Package : omnithread
-// omnithread/nt.h Created : 6/95 tjr
-//
-// Copyright (C) 1995, 1996, 1997 Olivetti & Oracle Research Laboratory
-//
-// This file is part of the omnithread library
-//
-// The omnithread library is free software; you can redistribute it and/or
-// modify it under the terms of the GNU Library General Public
-// License as published by the Free Software Foundation; either
-// version 2 of the License, or (at your option) any later version.
-//
-// This library 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
-// Library General Public License for more details.
-//
-// You should have received a copy of the GNU Library General Public
-// License along with this library; if not, write to the Free
-// Software Foundation, Inc., 51 Franklin Street, Boston, MA
-// 02110-1301, USA
-//
-//
-// OMNI thread implementation classes for NT threads.
-//
-
-#ifndef __omnithread_nt_h_
-#define __omnithread_nt_h_
-
-#ifndef WIN32_LEAN_AND_MEAN
-# define WIN32_LEAN_AND_MEAN
-# define OMNI_DEFINED_WIN32_LEAN_AND_MEAN
-#endif
-
-#include <windows.h>
-
-#ifdef OMNI_DEFINED_WIN32_LEAN_AND_MEAN
-# undef WIN32_LEAN_AND_MEAN
-# undef OMNI_DEFINED_WIN32_LEAN_AND_MEAN
-#endif
-
-
-#ifndef __BCPLUSPLUS__
-#define OMNI_THREAD_WRAPPER \
- unsigned __stdcall omni_thread_wrapper(LPVOID ptr);
-#else
-#define OMNI_THREAD_WRAPPER \
- void _USERENTRY omni_thread_wrapper(void *ptr);
-#endif
-
-extern "C" OMNI_THREAD_WRAPPER;
-
-#define OMNI_MUTEX_IMPLEMENTATION \
- CRITICAL_SECTION crit;
-
-#define OMNI_MUTEX_LOCK_IMPLEMENTATION \
- EnterCriticalSection(&crit);
-
-#define OMNI_MUTEX_TRYLOCK_IMPLEMENTATION \
- TryEnterCriticalSection(&crit);
-
-#define OMNI_MUTEX_UNLOCK_IMPLEMENTATION \
- LeaveCriticalSection(&crit);
-
-#define OMNI_CONDITION_IMPLEMENTATION \
- CRITICAL_SECTION crit; \
- omni_thread* waiting_head; \
- omni_thread* waiting_tail;
-
-#define OMNI_SEMAPHORE_IMPLEMENTATION \
- HANDLE nt_sem;
-
-#define OMNI_THREAD_IMPLEMENTATION \
- HANDLE handle; \
- DWORD nt_id; \
- void* return_val; \
- HANDLE cond_semaphore; \
- omni_thread* cond_next; \
- omni_thread* cond_prev; \
- BOOL cond_waiting; \
- static int nt_priority(priority_t); \
- friend class omni_condition; \
- friend OMNI_THREAD_WRAPPER;
-
-#endif
diff --git a/omnithread/gnuradio/ot_posix.h b/omnithread/gnuradio/ot_posix.h
deleted file mode 100644
index 666ccc0890..0000000000
--- a/omnithread/gnuradio/ot_posix.h
+++ /dev/null
@@ -1,81 +0,0 @@
-// Package : omnithread
-// omnithread/posix.h Created : 7/94 tjr
-//
-// Copyright (C) 2006 Free Software Foundation, Inc.
-// Copyright (C) 1994,1995,1996, 1997 Olivetti & Oracle Research Laboratory
-//
-// This file is part of the omnithread library
-//
-// The omnithread library is free software; you can redistribute it and/or
-// modify it under the terms of the GNU Library General Public
-// License as published by the Free Software Foundation; either
-// version 2 of the License, or (at your option) any later version.
-//
-// This library 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
-// Library General Public License for more details.
-//
-// You should have received a copy of the GNU Library General Public
-// License along with this library; if not, write to the Free
-// Software Foundation, Inc., 51 Franklin Street, Boston, MA
-// 02110-1301, USA
-//
-//
-// OMNI thread implementation classes for posix threads
-//
-
-#ifndef __omnithread_posix_h_
-#define __omnithread_posix_h_
-
-#if defined(__alpha__) && defined(__osf1__) || defined(__hpux__)
-// stop unnecessary definitions of TRY, etc on OSF
-#ifndef EXC_HANDLING
-#define EXC_HANDLING
-#endif
-#endif
-
-#ifndef __POSIX_NT__
-# include <pthread.h>
-#else
-# ifndef WIN32_LEAN_AND_MEAN
-# define WIN32_LEAN_AND_MEAN
-# define OMNI_DEFINED_WIN32_LEAN_AND_MEAN
-# endif
-# include <windows.h>
-# include "pthread_nt.h"
-# ifdef OMNI_DEFINED_WIN32_LEAN_AND_MEAN
-# undef WIN32_LEAN_AND_MEAN
-# undef OMNI_DEFINED_WIN32_LEAN_AND_MEAN
-# endif
-#endif
-
-extern "C" void* omni_thread_wrapper(void* ptr);
-
-#define OMNI_MUTEX_IMPLEMENTATION \
- pthread_mutex_t posix_mutex;
-
-#define OMNI_MUTEX_LOCK_IMPLEMENTATION \
- pthread_mutex_lock(&posix_mutex);
-
-#define OMNI_MUTEX_TRYLOCK_IMPLEMENTATION \
- (pthread_mutex_trylock(&posix_mutex)==0);
-
-#define OMNI_MUTEX_UNLOCK_IMPLEMENTATION \
- pthread_mutex_unlock(&posix_mutex);
-
-#define OMNI_CONDITION_IMPLEMENTATION \
- pthread_cond_t posix_cond;
-
-#define OMNI_SEMAPHORE_IMPLEMENTATION \
- omni_mutex m; \
- omni_condition c; \
- int value; \
- int max_count;
-
-#define OMNI_THREAD_IMPLEMENTATION \
- pthread_t posix_thread; \
- static int posix_priority(priority_t); \
- friend void* omni_thread_wrapper(void* ptr);
-
-#endif
diff --git a/omnithread/gnuradio/ot_pthread_nt.h b/omnithread/gnuradio/ot_pthread_nt.h
deleted file mode 100644
index 324b5257f6..0000000000
--- a/omnithread/gnuradio/ot_pthread_nt.h
+++ /dev/null
@@ -1,186 +0,0 @@
-/* Package : omnithread
- omnithread/pthread_nt.h Created : Steven Brenneis <brennes1@rjrt.com>
-
- Copyright (C) 1998 Steven Brennes
-
- This file is part of the omnithread library
-
- The omnithread library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free
- Software Foundation, Inc., 51 Franklin Street, Boston, MA
- 02110-1301, USA
-
- Posix Threads implementation for Windows NT, version 4.0
-*/
-
-#ifndef PTHREAD_NT_H_INCLUDED
-#define PTHREAD_NT_H_INCLUDED
-
-#include <errno.h>
-
-#ifndef ETIMEDOUT
-// May have to be changed if NT starts supporting more errno values
-#define ETIMEDOUT 60
-#endif
-
-#undef PthreadDraftVersion
-#define PthreadDraftVersion 10
-
-#define NoNanoSleep
-
-#define PthreadSupportThreadPriority
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef _TIMERS_T_
-#define _TIMERS_T_
- typedef struct timespec {
- unsigned long tv_sec;
- long tv_nsec;
- } timespec_t;
-#endif
-
-typedef char* __pthreadLongString_t;
-typedef void* __pthreadLongAddr_t;
-typedef __pthreadLongAddr_t* __pthreadLongAddr_p;
-typedef long __pthreadLongInt_t;
-typedef unsigned long __pthreadLongUint_t;
-typedef __pthreadLongAddr_p __pthreadTsd_t;
-
-typedef struct __pthread_mutex_t {
- unsigned int lock; /* LOCK, SLOW, TYPE, RECURSIVE */
- unsigned int valid; /* Validation info */
- __pthreadLongString_t name; /* Name of mutex */
- unsigned int arg; /* printf argument for name */
- unsigned int depth; /* Recursive lock depth */
- unsigned long sequence; /* Mutex sequence number */
- unsigned long owner; /* Current owner (if known */
- __pthreadLongAddr_t block; /* Pointer to blocking struct */
-} pthread_mutex_t;
-
-typedef struct __pthread_mutexattr_t {
- long valid;
- __pthreadLongUint_t reserved[15];
-} pthread_mutexattr_t;
-
-typedef struct __pthread_cond_t {
- unsigned int state; /* EVENT, SLOW, REFCNT */
- unsigned int valid; /* Validation info */
- __pthreadLongString_t name; /* Name of condition variable */
- unsigned int arg; /* printf argument for name */
- unsigned long sequence; /* Condition variable seq # */
- __pthreadLongAddr_t block; /* Pointer to blocking struct */
-} pthread_cond_t ;
-
-typedef struct __pthread_condattr_t {
- long valid;
- __pthreadLongUint_t reserved[13];
-} pthread_condattr_t ;
-
-typedef struct __pthread_transp_t {
- __pthreadLongAddr_t reserved1; /* Reserved to posix_nt */
- __pthreadLongAddr_t reserved2; /* Reserved to posix_nt */
- unsigned short size; /* Size of data structure */
- unsigned char reserved3[2]; /* Reserved to posix_nt */
- __pthreadLongAddr_t reserved4; /* Reserved to posix_nt */
- __pthreadLongUint_t sequence; /* Thread sequence number */
- __pthreadLongUint_t reserved5[2]; /* Reserved to posix_nt */
- __pthreadLongAddr_t per_kt_area; /* Pointer to kernel context */
- __pthreadLongAddr_t stack_base; /* Current stack base */
- __pthreadLongAddr_t stack_reserve; /* Current stack reserve zone */
- __pthreadLongAddr_t stack_yellow; /* Current stack yellow zone */
- __pthreadLongAddr_t stack_guard; /* Current stack guard zone */
- __pthreadLongUint_t stack_size; /* Size of stack */
- __pthreadTsd_t tsd_values; /* TSD array (indexed by key) */
- unsigned long tsd_count; /* Number of TSD cells */
- __pthreadLongAddr_t reserved6; /* Reserved to posix_nt */
- __pthreadLongAddr_t reserved7; /* Reserved to posix_nt */
- unsigned int thread_flags; /* Dynamic external state */
-} pthread_transp_t, *pthread_transp_p;
-
-typedef pthread_transp_p pthread_t;
-
-typedef struct __pthread_attr_t {
- long valid;
- __pthreadLongString_t name;
- __pthreadLongUint_t arg;
- __pthreadLongUint_t reserved[19];
-} pthread_attr_t ;
-
-typedef unsigned int pthread_key_t;
-
-typedef struct sched_param {
- int sched_priority;
-} sched_param_t;
-
-/* Function Prototypes */
-
-int pthread_create(pthread_t *thread, const pthread_attr_t *attr,
- void *(*start_routine)(void*), void *arg);
-int pthread_detach(pthread_t thread);
-int pthread_join(pthread_t thread, void **value_ptr);
-void pthread_exit(void *value_ptr);
-int pthread_attr_init(pthread_attr_t *attr);
-int pthread_attr_destroy(pthread_attr_t *attr);
-int pthread_attr_setstacksize(pthread_attr_t *attr, size_t stacksize);
-int pthread_attr_getstacksize(const pthread_attr_t *attr,
- size_t *stacksize);
-int pthread_cond_init(pthread_cond_t *cond,
- const pthread_condattr_t *attr);
-int pthread_cond_destroy(pthread_cond_t *cond);
-int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex);
-int pthread_cond_timedwait(pthread_cond_t *cond,
- pthread_mutex_t *mutex,
- const struct timespec *abstime);
-int pthread_cond_signal(pthread_cond_t *cond);
-int pthread_cond_broadcast(pthread_cond_t *cond);
-int pthread_key_create(pthread_key_t *key, void (*destructor)(void*));
-int pthread_key_delete(pthread_key_t key);
-int pthread_mutex_destroy(pthread_mutex_t *mutex);
-int pthread_mutex_init(pthread_mutex_t *mutex,
- const pthread_mutexattr_t *attr);
-int pthread_mutex_lock(pthread_mutex_t *mutex);
-int pthread_mutex_trylock(pthread_mutex_t *mutex);
-int pthread_mutex_unlock(pthread_mutex_t *mutex);
-pthread_t pthread_self();
-int pthread_setspecific(pthread_key_t key, const void *value);
-void *pthread_getspecific(pthread_key_t key);
-int pthread_getschedparam(pthread_t thread, int *policy,
- struct sched_param *param);
-int pthread_setschedparam(pthread_t thread, int policy,
- const struct sched_param *param);
-int pthread_attr_setschedparam(pthread_attr_t *attr,
- const struct sched_param *param);
-int pthread_attr_getschedparam(const pthread_attr_t *attr,
- struct sched_param *param);
-
-int pthread_delay_np(const struct timespec *interval);
-int pthread_get_expiration_np(const struct timespec *delta,
- struct timespec *abstime);
-
-# define SCHED_FIFO 1
-# define SCHED_RR 2
-# define SCHED_OTHER 3
-
-int sched_yield();
-int sched_get_priority_max(int policy);
-int sched_get_priority_min(int policy);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif // PTHREAD_NT_H_INCLUDED
diff --git a/omnithread/gnuradio/ot_solaris.h b/omnithread/gnuradio/ot_solaris.h
deleted file mode 100644
index f4fea0b112..0000000000
--- a/omnithread/gnuradio/ot_solaris.h
+++ /dev/null
@@ -1,47 +0,0 @@
-// Package : omnithread
-// omnithread/solaris.h Created : 7/94 tjr
-//
-// Copyright (C) 1994,1995,1996, 1997 Olivetti & Oracle Research Laboratory
-//
-// This file is part of the omnithread library
-//
-// The omnithread library is free software; you can redistribute it and/or
-// modify it under the terms of the GNU Library General Public
-// License as published by the Free Software Foundation; either
-// version 2 of the License, or (at your option) any later version.
-//
-// This library 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
-// Library General Public License for more details.
-//
-// You should have received a copy of the GNU Library General Public
-// License along with this library; if not, write to the Free
-// Software Foundation, Inc., 51 Franklin Street, Boston, MA
-// 02110-1301, USA
-//
-// OMNI thread implementation classes for solaris threads.
-//
-
-#ifndef __omnithread_solaris_h_
-#define __omnithread_solaris_h_
-
-#include <thread.h>
-
-extern "C" void* omni_thread_wrapper(void* ptr);
-
-#define OMNI_MUTEX_IMPLEMENTATION \
- mutex_t sol_mutex;
-
-#define OMNI_CONDITION_IMPLEMENTATION \
- cond_t sol_cond;
-
-#define OMNI_SEMAPHORE_IMPLEMENTATION \
- sema_t sol_sem;
-
-#define OMNI_THREAD_IMPLEMENTATION \
- thread_t sol_thread; \
- static int sol_priority(priority_t); \
- friend void* omni_thread_wrapper(void* ptr);
-
-#endif