diff options
author | Johnathan Corgan <jcorgan@corganenterprises.com> | 2010-04-26 23:14:12 -0700 |
---|---|---|
committer | Johnathan Corgan <jcorgan@corganenterprises.com> | 2010-04-26 23:14:12 -0700 |
commit | c6ad778bda302a9abfe3f1a905d1a80ee34c60a6 (patch) | |
tree | 26cd9a62b04dc6aa9f55ff5355ff4aef45cfd762 /omnithread/threaddata.cc | |
parent | ac2b84b93cad94f9a8830eeb5e62dace997c9a47 (diff) |
Remove omnithreads library.
Diffstat (limited to 'omnithread/threaddata.cc')
-rw-r--r-- | omnithread/threaddata.cc | 83 |
1 files changed, 0 insertions, 83 deletions
diff --git a/omnithread/threaddata.cc b/omnithread/threaddata.cc deleted file mode 100644 index d54c439144..0000000000 --- a/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; -} |