aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra/llcommon/llmortician.cpp
diff options
context:
space:
mode:
authorJacek Antonelli2008-08-15 23:44:46 -0500
committerJacek Antonelli2008-08-15 23:44:46 -0500
commit38d6d37f2d982fa959e9e8a4a3f7e1ccfad7b5d4 (patch)
treeadca584755d22ca041a2dbfc35d4eca01f70b32c /linden/indra/llcommon/llmortician.cpp
parentREADME.txt (diff)
downloadmeta-impy-38d6d37f2d982fa959e9e8a4a3f7e1ccfad7b5d4.zip
meta-impy-38d6d37f2d982fa959e9e8a4a3f7e1ccfad7b5d4.tar.gz
meta-impy-38d6d37f2d982fa959e9e8a4a3f7e1ccfad7b5d4.tar.bz2
meta-impy-38d6d37f2d982fa959e9e8a4a3f7e1ccfad7b5d4.tar.xz
Second Life viewer sources 1.13.2.12
Diffstat (limited to 'linden/indra/llcommon/llmortician.cpp')
-rw-r--r--linden/indra/llcommon/llmortician.cpp70
1 files changed, 70 insertions, 0 deletions
diff --git a/linden/indra/llcommon/llmortician.cpp b/linden/indra/llcommon/llmortician.cpp
new file mode 100644
index 0000000..d76359d
--- /dev/null
+++ b/linden/indra/llcommon/llmortician.cpp
@@ -0,0 +1,70 @@
1/**
2 * @file llmortician.cpp
3 *
4 * Copyright (c) 2005-2007, Linden Research, Inc.
5 *
6 * The source code in this file ("Source Code") is provided by Linden Lab
7 * to you under the terms of the GNU General Public License, version 2.0
8 * ("GPL"), unless you have obtained a separate licensing agreement
9 * ("Other License"), formally executed by you and Linden Lab. Terms of
10 * the GPL can be found in doc/GPL-license.txt in this distribution, or
11 * online at http://secondlife.com/developers/opensource/gplv2
12 *
13 * There are special exceptions to the terms and conditions of the GPL as
14 * it is applied to this Source Code. View the full text of the exception
15 * in the file doc/FLOSS-exception.txt in this software distribution, or
16 * online at http://secondlife.com/developers/opensource/flossexception
17 *
18 * By copying, modifying or distributing this software, you acknowledge
19 * that you have read and understood your obligations described above,
20 * and agree to abide by those obligations.
21 *
22 * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
23 * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
24 * COMPLETENESS OR PERFORMANCE.
25 */
26
27#include "llmortician.h"
28
29#include <list>
30
31std::list<LLMortician*> gGraveyard;
32
33BOOL LLMortician::sDestroyImmediate = FALSE;
34
35LLMortician::~LLMortician()
36{
37 gGraveyard.remove(this);
38}
39
40void LLMortician::updateClass()
41{
42 while (!gGraveyard.empty())
43 {
44 LLMortician* dead = gGraveyard.front();
45 delete dead;
46 }
47}
48
49void LLMortician::die()
50{
51 // It is valid to call die() more than once on something that hasn't died yet
52 if (sDestroyImmediate)
53 {
54 // *NOTE: This is a hack to ensure destruction order on shutdown.
55 mIsDead = TRUE;
56 delete this;
57 return;
58 }
59 else if (!mIsDead)
60 {
61 mIsDead = TRUE;
62 gGraveyard.push_back(this);
63 }
64}
65
66// static
67void LLMortician::setZealous(BOOL b)
68{
69 sDestroyImmediate = b;
70}