summaryrefslogtreecommitdiff
path: root/gnuradio-core/src/lib/omnithread/threaddata.cc
diff options
context:
space:
mode:
authoreb <eb@221aa14e-8319-0410-a670-987f0aec2ac5>2007-01-30 02:12:05 +0000
committereb <eb@221aa14e-8319-0410-a670-987f0aec2ac5>2007-01-30 02:12:05 +0000
commit6ff1faed9d4c7095ab2d07b99478fe46e35f0e1e (patch)
tree033696613d2bd899d9e8178827d2bc0aad609771 /gnuradio-core/src/lib/omnithread/threaddata.cc
parentb8a177591928973eb863cc3690fb381306830bbd (diff)
Merged eb/omni -r4315:4327 into trunk.
Extracted omnithread from gnuradio-core and made it a top-level component. This allows mblock to use it without a dependency on gnuradio-core. Completes ticket:132 git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@4328 221aa14e-8319-0410-a670-987f0aec2ac5
Diffstat (limited to 'gnuradio-core/src/lib/omnithread/threaddata.cc')
-rw-r--r--gnuradio-core/src/lib/omnithread/threaddata.cc83
1 files changed, 0 insertions, 83 deletions
diff --git a/gnuradio-core/src/lib/omnithread/threaddata.cc b/gnuradio-core/src/lib/omnithread/threaddata.cc
deleted file mode 100644
index d54c439144..0000000000
--- a/gnuradio-core/src/lib/omnithread/threaddata.cc
+++ /dev/null
@@ -1,83 +0,0 @@
-// Package : omnithread
-// omnithread/threaddata.cc Created : 10/2000 dpg1
-//
-// Copyright (C) 2000 AT&T Laboratories Cambridge
-//
-// 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
-//
-
-// Implementation of per-thread data
-
-#ifndef INSIDE_THREAD_IMPL_CC
-#error "threaddata.cc must be #included by a thread implementation."
-#endif
-
-
-static omni_thread::key_t allocated_keys = 0;
-
-omni_thread::key_t
-omni_thread::allocate_key()
-{
- omni_mutex_lock l(*next_id_mutex);
- return ++allocated_keys;
-}
-
-omni_thread::value_t*
-omni_thread::set_value(key_t k, value_t* v)
-{
- if (k == 0) return 0;
- if (k > _value_alloc) {
- next_id_mutex->lock();
- key_t alloc = allocated_keys;
- next_id_mutex->unlock();
-
- if (k > alloc) return 0;
-
- value_t** nv = new value_t*[alloc];
- key_t i = 0;
- if (_values) {
- for (; i < _value_alloc; i++)
- nv[i] = _values[i];
- delete [] _values;
- }
- for (; i < alloc; i++)
- nv[i] = 0;
-
- _values = nv;
- _value_alloc = alloc;
- }
- if (_values[k-1]) delete _values[k-1];
- _values[k-1] = v;
- return v;
-}
-
-omni_thread::value_t*
-omni_thread::get_value(key_t k)
-{
- if (k > _value_alloc) return 0;
- return _values[k-1];
-}
-
-omni_thread::value_t*
-omni_thread::remove_value(key_t k)
-{
- if (k > _value_alloc) return 0;
- value_t* v = _values[k-1];
- _values[k-1] = 0;
- return v;
-}