From 1571e09823e28fd4c2d0332e05da16a9f2dccee6 Mon Sep 17 00:00:00 2001 From: Martin Stein Date: Thu, 12 Sep 2013 21:09:05 +0200 Subject: [PATCH] base: implement Object_pool::first_locked() ref #589 --- base/include/base/object_pool.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/base/include/base/object_pool.h b/base/include/base/object_pool.h index dcc8648f3..2ea9bffe9 100644 --- a/base/include/base/object_pool.h +++ b/base/include/base/object_pool.h @@ -196,6 +196,19 @@ namespace Genode { Lock::Guard lock_guard(_lock); return (OBJ_TYPE *)_tree.first(); } + + /** + * Return first element of tree locked + * + * This function is used for removing tree elements step by step. + */ + OBJ_TYPE *first_locked() + { + Lock::Guard lock_guard(_lock); + OBJ_TYPE * const obj_typed = (OBJ_TYPE *)_tree.first(); + obj_typed->lock(); + return obj_typed; + } }; }