summaryrefslogtreecommitdiff
path: root/examples/Shared_Malloc/test_multiple_mallocs.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'examples/Shared_Malloc/test_multiple_mallocs.cpp')
-rw-r--r--examples/Shared_Malloc/test_multiple_mallocs.cpp94
1 files changed, 25 insertions, 69 deletions
diff --git a/examples/Shared_Malloc/test_multiple_mallocs.cpp b/examples/Shared_Malloc/test_multiple_mallocs.cpp
index 568d72f39f7..4a1c8e7d3b4 100644
--- a/examples/Shared_Malloc/test_multiple_mallocs.cpp
+++ b/examples/Shared_Malloc/test_multiple_mallocs.cpp
@@ -1,7 +1,8 @@
// $Id$
-// Test the capability of <ACE_Malloc> to handle multiple mallocs
-// rooted at different base addresses.
+// Test the capabilities of the ACE shared memory manager in terms of
+// its ability to handle multiple mallocs rooted at different base
+// addresses.
#include "ace/Malloc.h"
#include "ace/Synch.h"
@@ -12,101 +13,56 @@ typedef ACE_Malloc <ACE_MMAP_MEMORY_POOL, ACE_Process_Mutex> MALLOC;
// Default address for shared memory mapped files and SYSV shared
// memory (defaults to 64 M).
-static void *request_base_addr = ((void *) (64 * 1024 * 1024));
-static const char *request_string = "hello from request repository";
+void *REQUEST_BASE_ADDR = ((void *) (64 * 1024 * 1024));
+const char *REQUEST_STRING = "hello from request repository";
// Default address for shared memory mapped files and SYSV shared
// memory (defaults to 64 M).
-static void *response_base_addr = ((void *) (128 * 1024 * 1024));
-static const char *response_string = "hello from response repository";
+void *RESPONSE_BASE_ADDR = ((void *) (128 * 1024 * 1024));
+const char *RESPONSE_STRING = "hello from response repository";
int
main (int, char *[])
{
- ACE_MMAP_Memory_Pool_Options request_options (request_base_addr);
+ ACE_MMAP_Memory_Pool_Options request_options (REQUEST_BASE_ADDR);
// Create an adapter version of an allocator.
- ACE_Allocator_Adapter<MALLOC> *shmem_request;
+ ACE_Allocator_Adapter<MALLOC> *shmem_request =
+ new ACE_Allocator_Adapter<MALLOC> ("request_file", "RequestLock", &request_options);
- ACE_NEW_RETURN (shmem_request,
- ACE_Allocator_Adapter<MALLOC> ("request_file",
- "RequestLock",
- &request_options),
- 1);
-
- ACE_MMAP_Memory_Pool_Options response_options (response_base_addr);
+ ACE_MMAP_Memory_Pool_Options response_options (RESPONSE_BASE_ADDR);
// Create a non-adapter version of an allocator.
- MALLOC *shmem_response;
- ACE_NEW_RETURN (shmem_response,
- MALLOC ("response_file",
- "ResponseLock",
- &response_options),
- 1);
+ MALLOC *shmem_response =
+ new MALLOC ("response_file","ResponseLock", &response_options);
+
void *data = 0;
- // If we find "foo" then we're running the "second" time, so we must
- // release the resources.
- if (shmem_request->find ("foo",
- data) == 0)
+ if (shmem_request->find ("foo", data) == 0)
{
- ACE_DEBUG ((LM_DEBUG,
- "%s\n",
- data));
+ ACE_OS::printf ("%s\n", data);
shmem_request->remove ();
}
-
- // This is the first time in, so we allocate the memory and bind it
- // to the name "foo".
else
{
- ACE_ALLOCATOR_RETURN (data,
- shmem_request->malloc (ACE_OS::strlen (request_string) + 1),
- 1);
- ACE_OS::strcpy ((char *) data,
- request_string);
-
- if (shmem_request->bind ("foo",
- data) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "bind"),
- 1);
+ data = shmem_request->malloc (ACE_OS::strlen (REQUEST_STRING) + 1);
+ ACE_OS::strcpy ((char *) data, REQUEST_STRING);
+ shmem_request->bind ("foo", data);
}
data = 0;
- // If we find "foo" then we're running the "second" time, so we must
- // release the resources.
- if (shmem_response->find ("foo",
- data) == 0)
+ if (shmem_response->find ("foo", data) == 0)
{
- ACE_DEBUG ((LM_DEBUG,
- "%s\n",
- data));
+ ACE_OS::printf ("%s\n", data);
shmem_response->remove ();
- ACE_DEBUG ((LM_DEBUG,
- "all resources have been released\n"));
}
-
- // This is the first time in, so we allocate the memory and bind it
- // to the name "foo".
else
{
- ACE_ALLOCATOR_RETURN (data,
- shmem_response->malloc (ACE_OS::strlen (response_string) + 1),
- 1);
- ACE_OS::strcpy ((char *) data,
- response_string);
-
- if (shmem_response->bind ("foo",
- data) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n",
- "bind"),
- 1);
+ data = shmem_response->malloc (ACE_OS::strlen (RESPONSE_STRING) + 1);
+ ACE_OS::strcpy ((char *) data, RESPONSE_STRING);
+ shmem_response->bind ("foo", data);
- ACE_DEBUG ((LM_DEBUG,
- "Run again to see results and release resources.\n"));
+ ACE_OS::printf ("Run again to see results and release resources.\n");
}
return 0;