From af100db4697a85522893ebbffbf2de2741988265 Mon Sep 17 00:00:00 2001
From: wangzhengquan <wangzhengquan85@126.com>
Date: 星期一, 20 七月 2020 11:13:41 +0800
Subject: [PATCH] update
---
queue/include/shm_allocator.h | 40 ++++++++++++++++++++++++++++++++++------
1 files changed, 34 insertions(+), 6 deletions(-)
diff --git a/queue/include/shm_allocator.h b/queue/include/shm_allocator.h
index f9e838b..6d9dcc6 100644
--- a/queue/include/shm_allocator.h
+++ b/queue/include/shm_allocator.h
@@ -9,7 +9,7 @@
-template<class T> class SHMAllocator
+template<class T> class SHM_STL_Allocator
{
public:
typedef T value_type;
@@ -21,10 +21,10 @@
typedef ptrdiff_t difference_type;
- SHMAllocator() {};
- ~SHMAllocator() {};
- template<class U> SHMAllocator(const SHMAllocator<U>& t) { };
- template<class U> struct rebind { typedef SHMAllocator<U> other; };
+ SHM_STL_Allocator() {};
+ ~SHM_STL_Allocator() {};
+ template<class U> SHM_STL_Allocator(const SHM_STL_Allocator<U>& t) { };
+ template<class U> struct rebind { typedef SHM_STL_Allocator<U> other; };
pointer allocate(size_type n, const void* hint=0) {
// fprintf(stderr, "allocate n=%u, hint= %p\n",n, hint);
@@ -63,12 +63,40 @@
};
+class SHM_Allocator {
+ public:
+ static void *allocate (size_t size) {
+ printf("shm_allocator malloc\n");
+ return mm_malloc(size);
+ }
+
+ static void deallocate (void *ptr) {
+ printf("shm_allocator free\n");
+ return mm_free(ptr);
+ }
+};
+
+
+class DM_Allocator {
+ public:
+ static void *allocate (size_t size) {
+ printf("dm_allocator malloc\n");
+ return malloc(size);
+ }
+
+ static void deallocate (void *ptr) {
+ printf("dm_allocator free\n");
+ return free(ptr);
+ }
+};
+
+
// template<class charT, class traits = char _traits<charT>,
// class Allocator = allocator<charT> >
-typedef std::basic_string<char, std::char_traits<char>, SHMAllocator<char> > shmstring;
+typedef std::basic_string<char, std::char_traits<char>, SHM_STL_Allocator<char> > shmstring;
#endif
\ No newline at end of file
--
Gitblit v1.8.0