base: add mutex as derivate of lock

The mutex class is more restrictive in usage compared to
Genode::Lock.

- At initialiation time it is ever unlocked.
- No thread is permitted to lock twice. Warn about it
  in case it happens.
- Only the lock onwer is permitted to unlock the mutex.
  Warn about it and don't unlock the mutex in case it happens.

Issue #3612
This commit is contained in:
Alexander Boettcher
2020-01-24 13:46:09 +01:00
committed by Christian Helmuth
parent d1609e771a
commit 00f69bc70d
15 changed files with 133 additions and 16 deletions

View File

@@ -17,6 +17,7 @@ SRC_CC += session_state.cc
SRC_CC += elf_binary.cc
SRC_CC += ipc.cc
SRC_CC += lock.cc
SRC_CC += mutex.cc
SRC_CC += log.cc
SRC_CC += raw_output.cc
SRC_CC += rpc_entrypoint.cc

View File

@@ -32,7 +32,7 @@
#
#
# Copyright (C) 2016-2019 Genode Labs GmbH
# Copyright (C) 2016-2020 Genode Labs GmbH
#
# This file is part of the Genode OS framework, which is distributed
# under the terms of the GNU Affero General Public License version 3.
@@ -270,6 +270,8 @@ _ZN6Genode5ChildC2ERNS_10Region_mapERNS_14Rpc_entrypointERNS_12Child_policyE T
_ZN6Genode5ChildD0Ev T
_ZN6Genode5ChildD1Ev T
_ZN6Genode5ChildD2Ev T
_ZN6Genode5Mutex7acquireEv T
_ZN6Genode5Mutex7releaseEv T
_ZN6Genode5Stack4sizeEm T
_ZN6Genode5Trace6Logger17_evaluate_controlEv T
_ZN6Genode5Trace6Logger3logEPKcm T