From 67c578e73f123ecb32bf97f62c9bd300638d4f91 Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Wed, 10 Oct 2007 21:30:51 +0000 Subject: [PATCH] Added global lock that can be used for lazy initializations. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22502 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- headers/private/app/AppMisc.h | 34 ++++++++-------------------------- src/kits/app/AppMisc.cpp | 3 +++ 2 files changed, 11 insertions(+), 26 deletions(-) diff --git a/headers/private/app/AppMisc.h b/headers/private/app/AppMisc.h index 3a7cefcd60..e5da9ebcfa 100644 --- a/headers/private/app/AppMisc.h +++ b/headers/private/app/AppMisc.h @@ -1,33 +1,12 @@ -//------------------------------------------------------------------------------ -// Copyright (c) 2001-2002, OpenBeOS -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the "Software"), -// to deal in the Software without restriction, including without limitation -// the rights to use, copy, modify, merge, publish, distribute, sublicense, -// and/or sell copies of the Software, and to permit persons to whom the -// Software is furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -// DEALINGS IN THE SOFTWARE. -// -// File Name: AppMisc.h -// Author: Ingo Weinhold (bonefish@users.sf.net) -// Description: Miscellaneous private functionality. -//------------------------------------------------------------------------------ - +/* + * Copyright 2002-2007, Ingo Weinhold, bonefish@users.sf.net. + * Distributed under the terms of the MIT License. + */ #ifndef _APP_MISC_H #define _APP_MISC_H #include +#include #include #include @@ -35,6 +14,9 @@ struct entry_ref; namespace BPrivate { +// Global lock that can be used e.g. to initialize singletons. +extern BLocker gInitializationLock; + status_t get_app_path(team_id team, char *buffer); status_t get_app_path(char *buffer); status_t get_app_ref(team_id team, entry_ref *ref, bool traverse = true); diff --git a/src/kits/app/AppMisc.cpp b/src/kits/app/AppMisc.cpp index bb240efa9f..be7e5ec15c 100644 --- a/src/kits/app/AppMisc.cpp +++ b/src/kits/app/AppMisc.cpp @@ -18,6 +18,9 @@ namespace BPrivate { +BLocker gInitializationLock("global init lock"); + + // get_app_path /*! \brief Returns the path to an application's executable. \param team The application's team ID.