diff options
Diffstat (limited to 'indra/llcommon/llcoros.h')
-rwxr-xr-x[-rw-r--r--] | indra/llcommon/llcoros.h | 33 |
1 files changed, 27 insertions, 6 deletions
diff --git a/indra/llcommon/llcoros.h b/indra/llcommon/llcoros.h index 141b0df43c..01ee11da1a 100644..100755 --- a/indra/llcommon/llcoros.h +++ b/indra/llcommon/llcoros.h @@ -4,15 +4,32 @@ * @date 2009-06-02 * @brief Manage running boost::coroutine instances * - * $LicenseInfo:firstyear=2009&license=viewergpl$ - * Copyright (c) 2009, Linden Research, Inc. + * $LicenseInfo:firstyear=2009&license=viewerlgpl$ + * Second Life Viewer Source Code + * Copyright (C) 2010, Linden Research, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; + * version 2.1 of the License only. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA * $/LicenseInfo$ */ #if ! defined(LL_LLCOROS_H) #define LL_LLCOROS_H -#include <boost/coroutine/coroutine.hpp> +#include <boost/dcoroutine/coroutine.hpp> #include "llsingleton.h" #include <boost/ptr_container/ptr_map.hpp> #include <string> @@ -61,8 +78,8 @@ class LL_COMMON_API LLCoros: public LLSingleton<LLCoros> { public: - /// Canonical boost::coroutines::coroutine signature we use - typedef boost::coroutines::coroutine<void()> coro; + /// Canonical boost::dcoroutines::coroutine signature we use + typedef boost::dcoroutines::coroutine<void()> coro; /// Canonical 'self' type typedef coro::self self; @@ -108,7 +125,7 @@ public: template <typename CALLABLE> std::string launch(const std::string& prefix, const CALLABLE& callable) { - return launchImpl(prefix, new coro(callable)); + return launchImpl(prefix, new coro(callable, mStackSize)); } /** @@ -135,6 +152,9 @@ public: /// getName() by self.get_id() std::string getNameByID(const void* self_id) const; + /// for delayed initialization + void setStackSize(S32 stacksize); + private: friend class LLSingleton<LLCoros>; LLCoros(); @@ -142,6 +162,7 @@ private: std::string generateDistinctName(const std::string& prefix) const; bool cleanup(const LLSD&); + S32 mStackSize; typedef boost::ptr_map<std::string, coro> CoroMap; CoroMap mCoros; }; |