~evarlast/ubuntu/utopic/mongodb/upstart-workaround-debian-bug-718702

« back to all changes in this revision

Viewing changes to src/mongo/util/systeminfo_linux2.cpp

  • Committer: Package Import Robot
  • Author(s): James Page, James Page, Robie Basak
  • Date: 2013-05-29 17:44:42 UTC
  • mfrom: (44.1.7 sid)
  • Revision ID: package-import@ubuntu.com-20130529174442-z0a4qmoww4y0t458
Tags: 1:2.4.3-1ubuntu1
[ James Page ]
* Merge from Debian unstable, remaining changes:
  - Enable SSL support:
    + d/control: Add libssl-dev to BD's.
    + d/rules: Enabled --ssl option.
    + d/mongodb.conf: Add example SSL configuration options.
  - d/mongodb-server.mongodb.upstart: Add upstart configuration.
  - d/rules: Don't strip binaries during scons build for Ubuntu.
  - d/control: Add armhf to target archs.
  - d/p/SConscript.client.patch: fixup install of client libraries.
  - d/p/0010-install-libs-to-usr-lib-not-usr-lib64-Closes-588557.patch:
    Install libraries to lib not lib64.
* Dropped changes:
  - d/p/arm-support.patch: Included in Debian.
  - d/p/double-alignment.patch: Included in Debian.
  - d/rules,control: Debian also builds with avaliable system libraries
    now.
* Fix FTBFS due to gcc and boost upgrades in saucy:
  - d/p/0008-ignore-unused-local-typedefs.patch: Add -Wno-unused-typedefs
    to unbreak building with g++-4.8.
  - d/p/0009-boost-1.53.patch: Fixup signed/unsigned casting issue.

[ Robie Basak ]
* d/p/0011-Use-a-signed-char-to-store-BSONType-enumerations.patch: Fixup
  build failure on ARM due to missing signed'ness of char cast.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/**
2
 
 * Copyright (c) 2011 10gen Inc.
3
 
 *
4
 
 * This program is free software: you can redistribute it and/or  modify
5
 
 * it under the terms of the GNU Affero General Public License, version 3,
6
 
 * as published by the Free Software Foundation.
7
 
 *
8
 
 * This program is distributed in the hope that it will be useful,
9
 
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10
 
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11
 
 * GNU Affero General Public License for more details.
12
 
 *
13
 
 * You should have received a copy of the GNU Affero General Public License
14
 
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
15
 
 */
16
 
 
17
 
#include "pch.h"
18
 
#include "util/systeminfo.h"
19
 
 
20
 
#include <unistd.h>
21
 
 
22
 
namespace mongo {
23
 
 
24
 
    size_t SystemInfo::getPhysicalRam() {
25
 
        /*
26
 
          The value of this should not be changing while the system is running,
27
 
          so it should be safe to do this once for the lifetime of the
28
 
          application.
29
 
 
30
 
          This could present a race condition if multiple threads do this at
31
 
          the same time, but all paths through here will produce the same
32
 
          result, so it's not worth locking or worrying about it.
33
 
         */
34
 
        static bool unknown = true;
35
 
        static size_t ramSize = 0;
36
 
 
37
 
        if (unknown) {
38
 
            long pages = sysconf(_SC_PHYS_PAGES);
39
 
            long page_size = sysconf(_SC_PAGE_SIZE);
40
 
            ramSize = pages * page_size;
41
 
            unknown = false;
42
 
        }
43
 
 
44
 
        return ramSize;
45
 
    }
46
 
 
47
 
}
 
1
/**
 
2
 * Copyright (c) 2011 10gen Inc.
 
3
 *
 
4
 * This program is free software: you can redistribute it and/or  modify
 
5
 * it under the terms of the GNU Affero General Public License, version 3,
 
6
 * as published by the Free Software Foundation.
 
7
 *
 
8
 * This program is distributed in the hope that it will be useful,
 
9
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 
10
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
11
 * GNU Affero General Public License for more details.
 
12
 *
 
13
 * You should have received a copy of the GNU Affero General Public License
 
14
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
15
 */
 
16
 
 
17
#include "pch.h"
 
18
#include "util/systeminfo.h"
 
19
 
 
20
#include <unistd.h>
 
21
 
 
22
namespace mongo {
 
23
 
 
24
    size_t SystemInfo::getPhysicalRam() {
 
25
        /*
 
26
          The value of this should not be changing while the system is running,
 
27
          so it should be safe to do this once for the lifetime of the
 
28
          application.
 
29
 
 
30
          This could present a race condition if multiple threads do this at
 
31
          the same time, but all paths through here will produce the same
 
32
          result, so it's not worth locking or worrying about it.
 
33
         */
 
34
        static bool unknown = true;
 
35
        static size_t ramSize = 0;
 
36
 
 
37
        if (unknown) {
 
38
            long pages = sysconf(_SC_PHYS_PAGES);
 
39
            long page_size = sysconf(_SC_PAGE_SIZE);
 
40
            ramSize = pages * page_size;
 
41
            unknown = false;
 
42
        }
 
43
 
 
44
        return ramSize;
 
45
    }
 
46
 
 
47
}