174 int cxMempoolTransfer( |
174 int cxMempoolTransfer( |
175 CxMempool *source, |
175 CxMempool *source, |
176 CxMempool *dest |
176 CxMempool *dest |
177 ); |
177 ); |
178 |
178 |
|
179 /** |
|
180 * Transfers an object from one pool to another. |
|
181 * |
|
182 * You can only transfer objects that have been allocated by this pool. |
|
183 * Objects that have been registered with cxMempoolRegister() cannot be transferred this way. |
|
184 * |
|
185 * @attention If the object maintains a reference to the pool's allocator, |
|
186 * you must make sure to update that reference to the allocator of the destination pool. |
|
187 * |
|
188 * @param source the pool to move the memory from |
|
189 * @param dest the pool where to transfer the memory to |
|
190 * @param obj pointer to the object that shall be transferred |
|
191 * @retval zero success |
|
192 * @retval non-zero failure or object was not found in the source pool |
|
193 */ |
|
194 cx_attr_nonnull |
|
195 cx_attr_export |
|
196 int cxMempoolTransferObject( |
|
197 CxMempool *source, |
|
198 CxMempool *dest, |
|
199 const void *obj |
|
200 ); |
|
201 |
179 #ifdef __cplusplus |
202 #ifdef __cplusplus |
180 } // extern "C" |
203 } // extern "C" |
181 #endif |
204 #endif |
182 |
205 |
183 #endif // UCX_MEMPOOL_H |
206 #endif // UCX_MEMPOOL_H |