Changeset dd92fe9
- Timestamp:
- Dec 15, 2020, 10:25:12 PM (4 years ago)
- Branches:
- ADT, arm-eh, ast-experimental, enum, forall-pointer-decay, jacob/cs343-translation, master, new-ast-unique-expr, pthread-emulation, qualifiedEnum
- Children:
- 54eb1bb3
- Parents:
- ad2dced
- git-author:
- Peter A. Buhr <pabuhr@…> (12/15/20 21:51:36)
- git-committer:
- Peter A. Buhr <pabuhr@…> (12/15/20 22:25:12)
- Location:
- libcfa/src/concurrency
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/concurrency/coroutine.cfa
rad2dced rdd92fe9 10 10 // Created On : Mon Nov 28 12:27:26 2016 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Oct 23 23:05:24 202013 // Update Count : 2 212 // Last Modified On : Tue Dec 15 12:06:04 2020 13 // Update Count : 23 14 14 // 15 15 … … 88 88 static const size_t MinStackSize = 1000; 89 89 extern size_t __page_size; // architecture pagesize HACK, should go in proper runtime singleton 90 extern int __map_prot; 90 91 91 92 void __stack_prepare( __stack_info_t * this, size_t create_size ); … … 206 207 __cfaabi_dbg_debug_do( 207 208 storage = (char*)(storage) - __page_size; 208 if ( mprotect( storage, __page_size, PROT_READ | PROT_WRITE) == -1 ) {209 if ( mprotect( storage, __page_size, __map_prot ) == -1 ) { 209 210 abort( "(coStack_t *)%p.^?{}() : internal error, mprotect failure, error(%d) %s.", &this, errno, strerror( errno ) ); 210 211 } -
libcfa/src/concurrency/kernel/startup.cfa
rad2dced rdd92fe9 117 117 } 118 118 119 size_t __page_size = 0;119 extern size_t __page_size; 120 120 121 121 //----------------------------------------------------------------------------- … … 161 161 /* paranoid */ verify( ! __preemption_enabled() ); 162 162 __cfadbg_print_safe(runtime_core, "Kernel : Starting\n"); 163 164 __page_size = sysconf( _SC_PAGESIZE );165 163 166 164 __cfa_dbg_global_clusters.list{ __get }; … … 681 679 #if CFA_PROCESSOR_USE_MMAP 682 680 stacksize = ceiling( stacksize, __page_size ) + __page_size; 683 stack = mmap(0p, stacksize, PROT_EXEC | PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, 0, 0);681 stack = mmap(0p, stacksize, __map_prot, MAP_PRIVATE | MAP_ANONYMOUS, 0, 0); 684 682 if(stack == ((void*)-1)) { 685 683 abort( "pthread stack creation : internal error, mmap failure, error(%d) %s.", errno, strerror( errno ) );
Note: See TracChangeset
for help on using the changeset viewer.