diff options
author | Björn Gustavsson <bjorn@erlang.org> | 2011-11-08 11:06:21 +0100 |
---|---|---|
committer | Björn Gustavsson <bjorn@erlang.org> | 2011-11-08 11:06:21 +0100 |
commit | 4a67884525973f104e9b05ea80bc16ffc71fada8 (patch) | |
tree | 00ef8d308f061737d0b1c8a7cf65598737cd8246 /erts/emulator/sys | |
parent | 766a0a84f0b9e4b9341fb06364bf5430574588a6 (diff) | |
parent | 3d5cdb216fa5652bd8552ef4fa4eee310e543b42 (diff) | |
download | otp-4a67884525973f104e9b05ea80bc16ffc71fada8.tar.gz otp-4a67884525973f104e9b05ea80bc16ffc71fada8.tar.bz2 otp-4a67884525973f104e9b05ea80bc16ffc71fada8.zip |
Merge branch 'bjorn/create-less-garbage'
* bjorn/create-less-garbage:
Optimize filename:basename/1 to produce less garbage
Optimize filename:extension/1 to produce less garbage
sys.c for Unix: Undo caching of utsname in os_flavor()
Pre-build the tuples returned by os:type/0 and os:version/0
Diffstat (limited to 'erts/emulator/sys')
-rw-r--r-- | erts/emulator/sys/unix/sys.c | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/erts/emulator/sys/unix/sys.c b/erts/emulator/sys/unix/sys.c index 94ec8dc8a0..20bfaad9aa 100644 --- a/erts/emulator/sys/unix/sys.c +++ b/erts/emulator/sys/unix/sys.c @@ -931,18 +931,13 @@ void os_flavor(char* namebuf, /* Where to return the name. */ unsigned size) /* Size of name buffer. */ { - static int called = 0; - static struct utsname uts; /* Information about the system. */ - - if (!called) { - char* s; + struct utsname uts; /* Information about the system. */ + char* s; - (void) uname(&uts); - called = 1; - for (s = uts.sysname; *s; s++) { - if (isupper((int) *s)) { - *s = tolower((int) *s); - } + (void) uname(&uts); + for (s = uts.sysname; *s; s++) { + if (isupper((int) *s)) { + *s = tolower((int) *s); } } strcpy(namebuf, uts.sysname); |