Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/c/generic/fibril.c

    re7267a2 r32d19f7  
    3737#include <fibril.h>
    3838#include <thread.h>
    39 #include <stack.h>
    4039#include <tls.h>
    4140#include <malloc.h>
    42 #include <abi/mm/as.h>
    43 #include <as.h>
    4441#include <unistd.h>
    4542#include <stdio.h>
     
    4946#include <assert.h>
    5047#include <async.h>
     48
     49#ifndef FIBRIL_INITIAL_STACK_PAGES_NO
     50        #define FIBRIL_INITIAL_STACK_PAGES_NO  1
     51#endif
    5152
    5253/**
     
    194195                                         * stack member filled.
    195196                                         */
    196                                         as_area_destroy(stack);
     197                                        free(stack);
    197198                                }
    198199                                fibril_teardown(srcf->clean_after_me);
     
    268269                return 0;
    269270       
    270         size_t stack_size = stack_size_get();
    271         fibril->stack = as_area_create((void *) -1, stack_size,
    272             AS_AREA_READ | AS_AREA_WRITE | AS_AREA_CACHEABLE | AS_AREA_GUARD |
    273             AS_AREA_LATE_RESERVE);
    274         if (fibril->stack == (void *) -1) {
     271        fibril->stack =
     272            (char *) malloc(FIBRIL_INITIAL_STACK_PAGES_NO * getpagesize());
     273        if (!fibril->stack) {
    275274                fibril_teardown(fibril);
    276275                return 0;
     
    282281        context_save(&fibril->ctx);
    283282        context_set(&fibril->ctx, FADDR(fibril_main), fibril->stack,
    284             stack_size, fibril->tcb);
     283            FIBRIL_INITIAL_STACK_PAGES_NO * getpagesize(), fibril->tcb);
    285284
    286285        return (fid_t) fibril;
     
    299298        fibril_t *fibril = (fibril_t *) fid;
    300299       
    301         as_area_destroy(fibril->stack);
     300        free(fibril->stack);
    302301        fibril_teardown(fibril);
    303302}
Note: See TracChangeset for help on using the changeset viewer.