diff options
Diffstat (limited to 'examples/Shared_Malloc/test_multiple_mallocs.cpp')
-rw-r--r-- | examples/Shared_Malloc/test_multiple_mallocs.cpp | 94 |
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; |