Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
MariaDB
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
8dfb87ba
Commit
8dfb87ba
authored
May 12, 2004
by
ejonore@mc03.ndb.mysql.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix broken arg fot getrlimit
parent
6fb4bea1
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
20 additions
and
16 deletions
+20
-16
ndb/src/cw/cpcd/Process.cpp
ndb/src/cw/cpcd/Process.cpp
+20
-16
No files found.
ndb/src/cw/cpcd/Process.cpp
View file @
8dfb87ba
...
...
@@ -25,7 +25,9 @@
#include "CPCD.hpp"
#include <pwd.h>
#ifdef HAVE_GETRLIMIT
#include <sys/resource.h>
#endif
void
CPCD
::
Process
::
print
(
FILE
*
f
){
...
...
@@ -205,6 +207,7 @@ setup_environment(const char *env) {
static
int
set_ulimit
(
const
BaseString
&
pair
){
#ifdef HAVE_GETRLIMIT
errno
=
0
;
do
{
Vector
<
BaseString
>
list
;
...
...
@@ -213,41 +216,42 @@ set_ulimit(const BaseString & pair){
break
;
}
int
res
ource
=
0
;
int
res
;
rlim_t
value
=
RLIM_INFINITY
;
if
(
!
(
list
[
1
].
trim
()
==
"unlimited"
)){
value
=
atoi
(
list
[
1
].
c_str
());
}
struct
rlimit
rlp
;
#define _RLIMIT_FIX(x) { res = getrlimit(x,&rlp); if(!res){ rlp.rlim_cur = value; res = setrlimit(x, &rlp); }}
if
(
list
[
0
].
trim
()
==
"c"
){
resource
=
RLIMIT_CORE
;
_RLIMIT_FIX
(
RLIMIT_CORE
)
;
}
else
if
(
list
[
0
]
==
"d"
){
resource
=
RLIMIT_DATA
;
_RLIMIT_FIX
(
RLIMIT_DATA
)
;
}
else
if
(
list
[
0
]
==
"f"
){
resource
=
RLIMIT_FSIZE
;
_RLIMIT_FIX
(
RLIMIT_FSIZE
)
;
}
else
if
(
list
[
0
]
==
"n"
){
resource
=
RLIMIT_NOFILE
;
_RLIMIT_FIX
(
RLIMIT_NOFILE
)
;
}
else
if
(
list
[
0
]
==
"s"
){
resource
=
RLIMIT_STACK
;
_RLIMIT_FIX
(
RLIMIT_STACK
)
;
}
else
if
(
list
[
0
]
==
"t"
){
resource
=
RLIMIT_CPU
;
_RLIMIT_FIX
(
RLIMIT_CPU
)
;
}
else
{
errno
=
EINVAL
;
break
;
}
struct
rlimit
rlp
;
if
(
getrlimit
(
resource
,
&
rlp
)
!=
0
){
if
(
!
res
)
break
;
}
rlp
.
rlim_cur
=
value
;
if
(
setrlimit
(
resource
,
&
rlp
)
!=
0
){
break
;
}
return
0
;
}
while
(
false
);
logger
.
error
(
"Unable to process ulimit: %s(%s)"
,
pair
.
c_str
(),
strerror
(
errno
));
return
-
1
;
#else
return
0
;
// Maybe it's ok anyway...
#endif
}
void
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment