Date: Tue, 26 Dec 2017 07:08:11 +0000 (UTC) From: Peter Holm <pho@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r327190 - user/pho/stress2/misc Message-ID: <201712260708.vBQ78BWm038025@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: pho Date: Tue Dec 26 07:08:11 2017 New Revision: 327190 URL: https://svnweb.freebsd.org/changeset/base/327190 Log: Added a test scenario. Obtained from: peterj@ Added: user/pho/stress2/misc/chain.sh (contents, props changed) Added: user/pho/stress2/misc/chain.sh ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/pho/stress2/misc/chain.sh Tue Dec 26 07:08:11 2017 (r327190) @@ -0,0 +1,49 @@ +#!/bin/sh + +# Unkillable process in "vm map (user)" seen. +# https://people.freebsd.org/~pho/stress/log/kostik1070.txt + +# Test scenario by Peter Jeremy <peterj@> + +if [ ! -f /usr/local/include/libmill.h -o \ + ! -x /usr/local/lib/libmill.so ]; then + echo "ports/devel/libmill needed." + exit 0 +fi + +. ../default.cfg + +cat > /tmp/chain.c <<EOF +#include <stdio.h> +#include <stdlib.h> +#include <libmill.h> + +coroutine void f(chan left, chan right) { + chs(left, int, 1 + chr(right, int)); +} + +int +main(int argc __unused, char **argv) +{ + int i, n = argv[1] ? atoi(argv[1]) : 10000; + chan leftmost = chmake(int, 0); + chan left = NULL; + chan right = leftmost; + + for (i = 0; i < n; i++) { + left = right; + right = chmake(int, 0); + go(f(left, right)); + } + chs(right, int, 0); + i = chr(leftmost, int); + printf("result = %d\n", i); + return(0); +} +EOF + +mycc -o /tmp/chain -I /usr/local/include -L /usr/local/lib -Wall -Wextra \ + -O2 -g /tmp/chain.c -lmill || exit 1 +/tmp/chain 1000000 +rm -f /tmp/chain /tmp/chain.c +exit 0
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201712260708.vBQ78BWm038025>