diff options
Diffstat (limited to 'ml/dlib/dlib/memory_manager_stateless/memory_manager_stateless_kernel_2.h')
-rw-r--r-- | ml/dlib/dlib/memory_manager_stateless/memory_manager_stateless_kernel_2.h | 119 |
1 files changed, 0 insertions, 119 deletions
diff --git a/ml/dlib/dlib/memory_manager_stateless/memory_manager_stateless_kernel_2.h b/ml/dlib/dlib/memory_manager_stateless/memory_manager_stateless_kernel_2.h deleted file mode 100644 index 7c4bf76f5..000000000 --- a/ml/dlib/dlib/memory_manager_stateless/memory_manager_stateless_kernel_2.h +++ /dev/null @@ -1,119 +0,0 @@ -// Copyright (C) 2006 Davis E. King (davis@dlib.net) -// License: Boost Software License See LICENSE.txt for the full license. -#ifndef DLIB_MEMORY_MANAGER_STATELESs_2_ -#define DLIB_MEMORY_MANAGER_STATELESs_2_ - -#include "../algs.h" -#include "memory_manager_stateless_kernel_abstract.h" -#include "../threads.h" - -namespace dlib -{ - template < - typename T, - typename mem_manager - > - class memory_manager_stateless_kernel_2 - { - /*! - REQUIREMENTS ON mem_manager - mem_manager must be an implementation of memory_manager/memory_manager_kernel_abstract.h - - CONVENTION - this object has a single global instance of mem_manager - !*/ - - public: - - typedef T type; - const static bool is_stateless = true; - - template <typename U> - struct rebind { - typedef memory_manager_stateless_kernel_2<U,mem_manager> other; - }; - - memory_manager_stateless_kernel_2( - ) - { - // call this just to make sure the mutex is is initialized before - // multiple threads start calling the member functions. - global_mutex(); - } - - virtual ~memory_manager_stateless_kernel_2( - ) {} - - T* allocate ( - ) - { - auto_mutex M(global_mutex()); - return global_mm().allocate(); - } - - void deallocate ( - T* item - ) - { - auto_mutex M(global_mutex()); - return global_mm().deallocate(item); - } - - T* allocate_array ( - unsigned long size - ) - { - auto_mutex M(global_mutex()); - return global_mm().allocate_array(size); - } - - void deallocate_array ( - T* item - ) - { - auto_mutex M(global_mutex()); - return global_mm().deallocate_array(item); - } - - void swap (memory_manager_stateless_kernel_2&) - {} - - private: - - static mutex& global_mutex ( - ) - { - static mutex lock; - return lock; - } - - typedef typename mem_manager::template rebind<T>::other rebound_mm_type; - - static rebound_mm_type& global_mm ( - ) - { - static rebound_mm_type mm; - return mm; - } - - // restricted functions - memory_manager_stateless_kernel_2(memory_manager_stateless_kernel_2&); // copy constructor - memory_manager_stateless_kernel_2& operator=(memory_manager_stateless_kernel_2&); // assignment operator - }; - - template < - typename T, - typename mem_manager - > - inline void swap ( - memory_manager_stateless_kernel_2<T,mem_manager>& a, - memory_manager_stateless_kernel_2<T,mem_manager>& b - ) { a.swap(b); } - -} - -#endif // DLIB_MEMORY_MANAGER_STATELESs_2_ - - - - |