public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
* setrlimit always fails
@ 2021-02-11 15:23 Patrick Chkoreff
  2021-02-12  2:06 ` Ken Brown
  2021-02-12  9:11 ` Corinna Vinschen
  0 siblings, 2 replies; 14+ messages in thread
From: Patrick Chkoreff @ 2021-02-11 15:23 UTC (permalink / raw)
  To: The Cygwin Mailing List

I'm trying to use setrlimit to impose limits on various resources such
as CPU time and memory.  The call to setrlimit always fails.  I've
distilled this into the following example test.c:

#include <stdio.h>
#include <stdlib.h>
#include <sys/resource.h>

int main(void)
    {
    struct rlimit rlim;
    rlim.rlim_cur = 1;
    rlim.rlim_max = 1;
    if (setrlimit(RLIMIT_CPU,&rlim) < 0)
        {
        perror("setrlimit");
        exit(1);
        }
    printf("HEY\n");
    while (1)
        {
        }
    printf("BYE\n");
    return 0;
    }

$ gcc test.c
$ ./a.exe
setrlimit: Invalid argument


I have found that the only way to make the setrlimit call succeed is to
use RLIM_INFINITY:

    rlim.rlim_cur = RLIM_INFINITY;
    rlim.rlim_max = RLIM_INFINITY;

But then of course it does not achieve the desired result of timing out
after 1 second.

Any ideas?


-- Patrick

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2021-02-16 18:33 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-02-11 15:23 setrlimit always fails Patrick Chkoreff
2021-02-12  2:06 ` Ken Brown
2021-02-12  7:26   ` Brian Inglis
2021-02-12  9:12     ` Corinna Vinschen
2021-02-12 18:56       ` Brian Inglis
2021-02-12 20:38         ` Brian Inglis
2021-02-12 15:11   ` Patrick Chkoreff
2021-02-15  9:14     ` Corinna Vinschen
2021-02-15 19:54       ` Patrick Chkoreff
2021-02-15 20:48         ` Corinna Vinschen
2021-02-16 14:53           ` Patrick Chkoreff
2021-02-16 15:22             ` Marco Atzeri
2021-02-16 18:33               ` Brian Inglis
2021-02-12  9:11 ` Corinna Vinschen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).