Description Usage Arguments Details Value See Also Examples
These functions are for package developers only, they can allocate, open, close and destroy shared memory without touching C++ code. Normal users should not use these functions unless dealing with memory leaking
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
size |
numeric(1), the size of the shared memory that you want to allocate |
name |
character(1), a single name that names the shared memory |
x |
integer(1) or character(1), an ID or a name that is used to find the shared memory. If x is a character with pure number, it will be treated as an ID. |
Quick explanation
getLastIndex: the ID of the last created shared memory.
allocateSharedMemory: allocate a shared memory of a given size,
the memory ID is returned by the function
allocateNamedSharedMemory: allocate a shared memory of a given size, the memory
can be found by the name that is passed to the function.
mapSharedMemory: map the shared memory to the current process memory space
unmapSharedMemory: unmap the shared memory(without destroying it)
freeSharedMemory: destroy the shared memory. This function will only unmap the
shared memory on Windows.
hasSharedMemory: whether the memory exist?
getSharedMemorySize: get the actual size of the shared memory, it may be larger than the
size you required.
Details
Creating and using shared memory involves three steps: allocating, mapping, and destroying the shared memory. There are two types of naming scheme that you can use to find the shared memory: an integer ID or a character name. They are determined in the first creation step.
The shared memory can be created by allocateSharedMemory or
allocateNamedSharedMemory.
The function allocateSharedMemory will return the ID of the shared memory.
After creating the shared memory, it can be mapped to the current process by
mapSharedMemory. The return value is an external pointer to the shared memory.
Once the shared memory is no longer needed, it can be destroyed by freeSharedMemory.
There is no need to unmap the shared memory unless you intentionally want to do so.
getLastIndex: An interger ID served as a hint of the last created shared memory ID.
allocateSharedMemory: an integer ID that can be used to find the shared memory
allocateNamedSharedMemory: no return value
mapSharedMemory: An external pointer to the shared memory
unmapSharedMemory: Logical value indicating whether the operation is success.
freeSharedMemory: Logical value indicating whether the operation is success.
hasSharedMemory: Logical value indicating whether the shared memory exist
getSharedMemorySize: A numeric value
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | size <- 10L
## unnamed shared memory
id <- allocateSharedMemory(size)
hasSharedMemory(id)
ptr <- mapSharedMemory(id)
ptr
getSharedMemorySize(id)
freeSharedMemory(id)
hasSharedMemory(id)
## named shared memory
name <- "SharedObjectExample"
if(!hasSharedMemory(name)){
allocateNamedSharedMemory(name,size)
hasSharedMemory(name)
ptr <- mapSharedMemory(name)
ptr
getSharedMemorySize(name)
freeSharedMemory(name)
hasSharedMemory(name)
}
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.