- File:
-
- 1 edited
-
libcfa/src/concurrency/kernel/startup.cfa (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/concurrency/kernel/startup.cfa
r28c35e2 r97229d6 117 117 } 118 118 119 extern size_t __page_size; 120 extern int __map_prot; 119 size_t __page_size = 0; 121 120 122 121 //----------------------------------------------------------------------------- … … 162 161 /* paranoid */ verify( ! __preemption_enabled() ); 163 162 __cfadbg_print_safe(runtime_core, "Kernel : Starting\n"); 163 164 __page_size = sysconf( _SC_PAGESIZE ); 164 165 165 166 __cfa_dbg_global_clusters.list{ __get }; … … 680 681 #if CFA_PROCESSOR_USE_MMAP 681 682 stacksize = ceiling( stacksize, __page_size ) + __page_size; 682 stack = mmap(0p, stacksize, __map_prot, MAP_PRIVATE | MAP_ANONYMOUS, 0, 0);683 stack = mmap(0p, stacksize, PROT_EXEC | PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, 0, 0); 683 684 if(stack == ((void*)-1)) { 684 685 abort( "pthread stack creation : internal error, mmap failure, error(%d) %s.", errno, strerror( errno ) ); … … 726 727 } 727 728 #else 728 __cfaabi_dbg_debug_do(729 // pthread has no mechanism to create the guard page in user supplied stack.730 if ( mprotect( stack, __page_size, __map_prot ) == -1 ) {731 abort( "mprotect : internal error, mprotect failure, error(%d) %s.", errno, strerror( errno ) );732 } // if733 );734 729 free( stack ); 735 730 #endif
Note:
See TracChangeset
for help on using the changeset viewer.