diff options
Diffstat (limited to 'src/example.c')
-rw-r--r-- | src/example.c | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/src/example.c b/src/example.c new file mode 100644 index 0000000..f8d4ba8 --- /dev/null +++ b/src/example.c @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2018 Vito Caputo - <vcaputo@pengaru.com> + * + * This program is free software: you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 3 as published + * by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ +#include <pulp.h> +#include <stdio.h> +#include <thunk.h> + + +THUNK_DEFINE(bar, int, id) +{ + printf("%i ", id); + return 0; +} + + +THUNK_DEFINE(foo, pulp_t *, p, int, w, int, h) +{ + for (int y = 0; y < h; y++) { + printf("\nw=%i h=%i\n", w, h); + for (int x = 0; x < w; x++) + (void) pulp_fiber_new(p, (w - x), THUNK(bar(x))); + + pulp_msleep(p, w + 1); + } + + return 0; +} + + +int main(int argc, char *argv[]) +{ + pulp_t *p; + + p = pulp_new(); + (void) pulp_fiber_new(p, 0, THUNK(foo(p, 40, 100))); + pulp_run(p); + pulp_free(p); + + return 0; +} |